我正在尝试为具有遗留C ++库依赖性的iOS应用编写测试。遗留库具有初始化例程和静态变量,每个应用程序周期必须运行/设置一次。
我已经创建了一个正常运行的测试目标。我的测试目标设置为通过Bundle Loader将我的应用程序用作测试主机。这将启动iOS应用程序,然后使用[SenTestCase调用测试]来运行测试。鉴于此设置,我希望让应用程序初始化库并让测试在“库已初始化”状态下运行。这似乎符合Apple Application Test范例。但是,在运行测试时,在应用程序启动期间初始化的旧库的静态变量为NULL。没有用户代码可以重置变量。
我希望我的应用程序测试能够访问我的应用程序的静态变量。有什么我可以配置允许这个吗?我错过了什么吗?
为了澄清,麻烦的静态变量位于链接的c ++库中。应用和单元测试似乎没有共享相同的应用范围。
答案 0 :(得分:4)
我有一个类似的问题,但有一个Obj-C静态库。单身人士创造了两次(一次在应用程序中,一次在测试包中)。他们的指针也在静态记忆中。
问题在于我将库链接到测试包目标。
我通过从" Link Binary With Libraries"中移除库来修复它。名单。 然后我还需要更改静态库的构建设置:我必须设置"默认隐藏的符号"没有。