Pat*_*ick 13 testing static-libraries ocunit ios
我按照Apple文档中提供的步骤创建了一个iOS单元测试目标,用于进行逻辑测试.
但是我的构建失败,我收到以下错误:
未定义的符号:
"_ OBJC_CLASS _ $ _ MyClass",引自:LogicTests.o中的objc-class-ref-to-MyClass ld:未找到符号collect2:ld返回1退出状态
通常,如果我想在应用程序中使用我的静态库,我会包含library.a文件和头文件(包括MyClass.h文件......).如果我的测试用例使用MyClass.h,那么在同一项目的静态库上运行逻辑测试需要额外的东西吗?
Tjhanks
Dan*_*iel 15
由于静态库的性质,您无法执行应用程序测试,因为它是您正在尝试执行的操作.但是,您可以执行逻辑测试.
您对客户端应用程序中的单元测试的观察是正确的.
Xcode模板可选地包括单元测试,但是如果您转到该单元测试的构建设置,您将看到它没有指定测试主机或捆绑加载器.这是因为静态库的本质.它们不是应用程序,它们是库 - 所以你可以做逻辑测试,你不能做应用程序测试.
您可能希望在静态库上执行的应用程序测试可能包括以下方案:
我的库在运行时创建一个SQLite数据库,我希望执行单元测试来检查所有内容是否按预期插入和/或更新.
为了使用单元测试对此进行测试,必须创建另一个包含或依赖于您的库的应用程序.然后,此应用程序包含您的库,然后可以在那里设置应用程序测试.
其实我刚刚解决了。我必须将项目中的所有 .m 文件复制到 LogicTest 目标的“编译源”。以及将源引用的框架添加到目标的“链接二进制文件与库”部分。
我希望这对其他人有帮助
| 归档时间: |
|
| 查看次数: |
8236 次 |
| 最近记录: |