2010-10-27 59 views
1

我目前使用的OCUnit附带Xcode 3.2.4,用于对我的应用程序进行单元测试。我的工作流程通常是在失败的单元测试中设置一些断点,以便快速检查状态。我使用的是苹果的OCUnit设置:单元测试和iPhone开发

http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/iphone_development/135-Unit_Testing_Applications/unit_testing_applications.html

但是从上面的设置让我有些头疼。 Apple区分应用测试和逻辑测试。正如我所看到的:

  • 您无法调试逻辑测试。就好像他们在建立你的项目时无形地运行一样。

  • 您可以调试应用程序的测试,但你必须给设备,而不是在模拟器上运行这些(究竟是什么原因呢?)

这意味着一切都与一种移动的慢我当前工作流程有关让应用测试在模拟器上运行的任何提示?或者任何针脚指向另一个测试框架? 会例如。 google-toolbox-for-mac在一般情况下或为我的特定需求工作得更好?

此外,欢迎在单元测试中使用断点的一般注释! :-)

回答

1

我过去使用过Google Toolbox测试工具,它工作的很好,它在模拟器和设备上运行,我可以调试我的测试,如果我想。最近我厌倦了将我的每个项目的代码捆绑在一起,并尝试苹果的方式。

我也发现逻辑/应用测试分裂怪异,特别是因为我找不到任何方式来调试现在的逻辑测试。 (如果你正在使用某些不会为Simulator构建的部分,你显然完全不满意逻辑测试,这似乎很奇怪。)其中一个优点是我可以在构建过程中快速运行逻辑测试。

我想这对你没什么帮助 - 关键是你可以在GTM下调试测试。你也可能想看看this related question

0

我知道这不是一个很好的答案,也不完全有助于你的事业。但我一直在使用NSLog来运行我的单元测试(如果没有输出到控制台,那么成功)。当我注释掉我的测试方法时,测试将不会运行。我发现这比OCUnit更可预测和可靠。我宁愿使用一个真正的单元测试器,但是处理OCUnit经常会出现的奇怪错误以及上面描述的其他缺陷/缺乏功能太令人沮丧了。