对Objective-C代码进行单元测试的框架是什么?我想要一个框架,很好地集成与苹果Xcode。


当前回答

Xcode包含XCTest,它类似于OCUnit,一个Objective-C单元测试框架,并且完全支持在项目构建过程中运行基于XCTest的单元测试。Xcode的单元测试支持在Xcode概述:使用单元测试中有描述。

回到Xcode 2天,我写了一系列关于如何用Xcode单元测试执行一些常见任务的博客文章:

单元测试Cocoa框架 调试Cocoa框架单元测试 单元测试Cocoa应用程序 调试Cocoa应用程序单元测试

尽管使用OCUnit而不是XCTest,但概念在很大程度上是相同的。

最后,我还写了几篇关于如何为Cocoa用户界面编写测试的文章;Cocoa的结构方式使得它相对简单,因为在大多数情况下你不需要旋转事件循环或类似的东西。

信任,但要验证。 单元测试Cocoa用户界面:目标-操作 单元测试Cocoa用户界面:Cocoa Bindings

这使得不仅可以对模型级代码进行测试驱动开发,还可以对控制器级甚至视图级代码进行测试驱动开发。

其他回答

单元测试支持捆绑在xcode(它的简单设置)结合ocrunner(一些自动测试/咆哮的好处)是目前我最喜欢的Obj-C单元测试设置。

Sen:te (Xcode中的测试框架的创建者)解释了如何在iPhone项目中使用OCUnit: simple-iphone-ipad-unit-test。

看看OCUnit。苹果的开发者网络有一个很好的介绍。

我还建议使用覆盖工具来查看单元测试覆盖了代码的哪些部分,哪些部分没有。基本的线路和分支代码覆盖可以用GCOV工具生成。如果你想生成漂亮的HTML覆盖报告,有LCOV和ZCOV可以做到这一点。

看看Gabriel Handford的GHUnit:

GHUnit的目标是: 在XCode中运行单元测试,允许 你要充分利用XCode 调试器。一个简单的GUI来帮助你 想象你的考试。显示堆栈 痕迹。作为框架可安装 (对于Cocoa应用程序)使用简单的(或 不是)目标设置;或易于包装 加入你的iPhone项目。”