我在 XCode 4 中使用单元测试。我一直在将我的应用程序 *.m 文件添加到单元测试目标“编译源”中,因为我引用它们,以便单元测试将构建/运行。
这里有更好的方法吗?
注意 - 我刚刚尝试将应用程序添加到单元测试目标“目标依赖项”,但这似乎不起作用(仍然会出现一些构建错误)。
在 Xcode 4 之前,您描述的方法是必要的:应用程序测试目标本质上必须是您的实际应用程序的副本,加上测试。
但是使用 Xcode 4,我们不再需要在模拟器中进行测试。相反,使用作为单元测试包的目标,并将您的测试添加到包中。在测试期间,应用程序被启动,测试包将被注入并与应用程序链接,所有这些都在运行时进行。
由于听起来您尝试过这种方法,所以让我们讨论一下您得到的实际错误。
是的,您需要将所需的每个 .m 文件添加到单元测试目标中。
这会将它们包含在目标编译和链接阶段。
如果 testTarget 是基于 Obj-C 项目中的 om SWIFT 语言创建的
制作 testTrget 的方案就足够了,但这样就足够了:产品 -> 方案 -> 编辑方案 -> 构建选项卡:仅选中测试仅此而已。
重要提示:您不应该将每个 .m 文件包含到测试目标中 只是将标头添加到 testTarget-Bridging-Header.h
注意:如果您将在方案或 INCLUDE .m 文件中检查更多内容到 testTarget 中,您可能会遇到标题冲突