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


当前回答

我建议你看看Kiwi,一个开源的iOS BDD测试框架: 猕猴桃

查看项目的WIKI,开始或获得Daniel Steinberg的书“Test Driving iOS Development with Kiwi” test-driving-ios-development

其他回答

我得出的结论是GHUnit是Objective-C最先进的测试框架。我已经在我的博客上做了一个测试框架的综述。它在部署(iphone、模拟器或mac os本机)和断言功能方面是最灵活的。因为它是基于GTM的,所以它继承了GTM相对于SenTestingKit的所有优势,但也添加了更多。另一个好处是,它得到了非常积极的维护。

我已经进行了努力,将OCMock集成到GHUnit中,它工作得很好!你可以在github上获得代码。

我推荐gh-unit,它有一个很好的测试结果的GUI。

http://github.com/gabriel/gh-unit/tree/master

注意,谷歌Toolbox for Mac (GTM)项目只是扩展/增强了苹果的SenTestingKit框架(它本身基于OCUnit)。就像他们在项目网站上说的:

GTM有几个增强 标准的SenTestingKit允许你 做UI单元测试,自动绑定 单元测试、日志跟踪和单元 在iPhone上进行测试 做静态和动态的工具 代码测试。

请注意以下关于用户界面测试的注释:

GTM对用户有广泛的支持 接口单元测试。它支持 同时测试成像和/或 内部状态几乎都有了 标准Cocoa/UIKit UI对象,以及 让你很容易扩展它 支持你自己的UI对象。

关于如何使用它,请参阅他们的“代码验证和单元测试”页面。

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

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