1

我正在尝试为具有旧版 C++ 库依赖项的 iOS 应用程序编写测试。遗留库具有每个应用程序周期必须运行/设置一次的初始化例程和静态变量。

我创建了一个正常工作的测试目标。我的测试目标设置为通过 Bundle Loader 将我的应用程序用作测试主机。这将启动 iOS 应用程序,然后使用 [SenTestCase 调用测试] 运行测试。鉴于此设置,我希望让应用程序初始化库并让测试在“库已初始化”状态下运行。这似乎符合 Apple Application Test 范式。但是,在运行测试时,在应用启动期间初始化的旧库的静态变量为 NULL。没有可以重置变量的用户代码。

我希望我的应用程序测试能够访问我的应用程序的静态变量。我可以配置一些东西来允许这样做吗?我错过了什么吗?


为了澄清,麻烦的静态变量在链接的 c++ 库中。应用程序和单元测试似乎没有共享相同的应用程序范围。

4

1 回答 1

4

我有一个类似的问题,但使用的是 Obj-C 静态库。单例创建了两次(一次在应用程序中,一次在测试包中)。它们的指针也在静态内存中。

问题是我将库链接到测试包目标。

我通过从“Link Binary With Libraries”列表中删除该库来修复它。然后我还需要更改静态库的构建设置:我必须将“默认隐藏的符号”设置为 NO。

于 2013-02-02T06:51:09.393 回答