iOS Application Test静态库初始化

时间:2012-08-06 16:45:26

标签: ios unit-testing xcode4 ocunit sentestingkit

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

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

我希望我的应用程序测试能够访问我的应用程序的静态变量。有什么我可以配置允许这个吗?我错过了什么吗?


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

1 个答案:

答案 0 :(得分:4)

我有一个类似的问题,但有一个Obj-C静态库。单身人士创造了两次(一次在应用程序中,一次在测试包中)。他们的指针也在静态记忆中。

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

我通过从" Link Binary With Libraries"中移除库来修复它。名单。 然后我还需要更改静态库的构建设置:我必须设置"默认隐藏的符号"没有。