测试驱动开发 (TDD):在 Xcode 4 中编写单元测试

Posted

技术标签:

【中文标题】测试驱动开发 (TDD):在 Xcode 4 中编写单元测试【英文标题】:Test Driven Development (TDD): Writing unit tests in Xcode 4 【发布时间】:2011-02-20 15:27:46 【问题描述】:

我热衷于编写一个带有测试的库项目,即使我随后将代码包含在其他项目中(而不是链接到库。)以包含在 ios 项目中。

似乎检查“包含单元测试”不足以让 xcode 4 正确初始化带有测试的项目,并且在查看 Apple 文档后我找不到任何相关内容。

有没有人知道任何资源或教程让这个工作?

即使使用默认的 Cocoa Touch 静态库项目,在从“产品”菜单中选择“测试”时,它也会失败(链接时)并出现此错误(项目名为 test1):

library not found for -ltest1
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2 failed with exit code 1

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

好吧,我终于搞定了。

诀窍是创建库而不检查 XCode 4 中的“包含单元测试”选项。然后我自己创建了一个新目标。

(在 xcode 4 中)

    创建一个新的 Cocoa Touch 静态库项目并且不要勾选“Include Unit Tests” 在导航器中选择项目 进入“构建阶段”标签 点击“添加目标”并选择“Cocoa Touch 单元测试包” 完成向导直到创建目标 然后进入“产品”菜单并选择“编辑方案...” 确保选择了您的项目(不是测试目标),然后选择“测试” 单击 + 添加新目标 选择您的测试项目并点击添加 现在按 Cmd+U(这是“产品 > 测试”菜单项的快捷方式),您会注意到默认测试失败。

我希望这会有所帮助。

【讨论】:

我在 Xcode 4 build 4A251a (GM Seed) 下使用“包含单元测试”在新项目中进行了测试。但它真的有效吗,以便看到失败的测试我必须在每次测试运行后手动打开控制台并扫描输出?! 我解决它的方式,失败的测试在 xcode 中显示为错误。因此,您可以在“问题”选项卡中查看它们并跳转到它们等等。 它在 Xcode 4 的最终版本中为我修复了。(有第二个 GM 种子 IIRC...) 我在 XCode 4.0.2 中继续遇到这个问题,但上面的答案对我有用。谢谢! 我同意.. 这在最新版本的 XCode 中是不需要的

以上是关于测试驱动开发 (TDD):在 Xcode 4 中编写单元测试的主要内容,如果未能解决你的问题,请参考以下文章

测试驱动开发-TDD

TDD测试驱动开发的实践心得

前端-自动化测试react项目-TDD

测试驱动开发(TDD)实践与技巧

使用带有 Rails 脚手架的测试驱动开发 (TDD)

浅谈测试驱动开发(TDD)