gpt4 book ai didi

iOS 应用测试静态库初始化

转载 作者:行者123 更新时间:2023-12-01 18:27:47 28 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

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

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

关于iOS 应用测试静态库初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11832473/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com