按照这些说明,我已经成功地将一个普通的单元测试包添加到我的项目中。我可以构建并运行我的测试目标,并且一个示例测试工作正常。
当我尝试测试特定课程时,事情开始走下坡路。
在我的应用程序中,我的许多 .h 文件都包含在 .pch 文件中。此外,MyModel 与其他类交互。因此,当我导入 MyModel.h 并在我的测试中使用它时,我收到一堆错误,这些错误与无法加载其他文件有关。我的解决方法是在我的测试目标的 .pch 文件中简单地添加相同的文件,并将这些文件添加到测试目标的“编译源”列表中。
所以我将这些类添加到测试目标和 .pch 中,尝试运行,但我最终陷入了无限循环,总是需要更多文件。当我最终将每个 .m 添加到我的项目中时,运行测试仍然非常失败。
知道我需要如何正确设置我的项目,以便我可以简单地#import "MyModel.h"
进入我的测试文件并编写/运行我的测试吗?我的项目是否有可能以一种无法进行测试的方式进行配置?
更新 1 遵循卡尔的建议,但无法通过第 2 步。我得到:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MyModel", referenced from:
objc-class-ref in BaseUnitTests.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
正是在这一点上,我将 MyModel.m 添加到“构建阶段/编译源”,并沿着将所有其他 .m 文件添加到测试目标的“编译源”的无尽路径。