无法为特定场景设置单元测试。这是我正在尝试的:
在 Xcode 4.5 中,我创建了一个简单的 OSX “命令行工具”应用程序项目(Foundation)。
请注意,Xcode不提供自动将单元测试添加到“命令行工具”项目的选项——因此请不要建议勾选勾选框;它不存在:-/在我的项目中,我创建了一个我想测试的简单示例类;例如“形状”。
我按照 Apple 的Xcode Unit Testing Guide for Setting Up Unit-Testing in a Project 中的说明进行操作:
我在我的项目中添加了一个单元测试目标,并且
我编辑了“测试”方案以在新目标中运行测试。
在测试项目的实现 (.m) 文件中,我
Shape.h
在方法中添加了导入和代码,setUp()
以实例化形状并将其分配给实例变量。
那时,我决定看看事情是否会建立,以及默认测试是否会继续运行。但是,当我从菜单中选择Product...Test时,构建失败并出现以下错误:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Shape", referenced from:
objc-class-ref in ExampleTests.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
解释这个错误不是问题。我觉得单元测试目标没有链接到包含 Shape 实现的二进制文件。但是,我(还)不了解 Xcode 单元测试和目标配置。所以:
为了使测试目标链接到命令行工具的结果输出,我需要做什么?我可以从单元测试目标链接到命令行可执行文件吗?Apple 的文档看起来特定于常规 OSX 应用程序 ( *.app
) 和 iOS 应用程序,而这两者都不是。
我有我想在命令行工具设置中开发的业务逻辑类(开始),所以我想了解我需要做什么才能让单元测试目标在“命令行工具”中运行“项目类型。 谢谢!
(ps请注意,我对从命令行运行我的单元测试不感兴趣——堆栈溢出已经提出了关于如何做到这一点的“类似”问题——而是在“命令行工具”类型的项目上运行单元测试,并且仍然来自 Xcode。)