Answers:
Xcode包含XCTest,它类似于OCUnit(一个Objective-C单元测试框架),并且完全支持运行基于XCTest的单元测试,这是项目构建过程的一部分。Xcode 概述:使用单元测试中描述了Xcode的单元测试支持。
回到Xcode的2天,我写了一系列有关如何使用Xcode单元测试执行一些常见任务的网络日志文章:
尽管使用OCUnit而不是XCTest,但这些概念在很大程度上是相同的。
最后,我还写了几篇关于如何为Cocoa用户界面编写测试的文章。可可结构化的方式使其相对简单,因为在大多数情况下,您不必旋转事件循环或类似事件。
这使得不仅可以对模型级代码,还可以对控制器级甚至视图级代码进行测试驱动的开发。
查看Gabriel Handford的GHUnit:
“ GHUnit的目标是:
在XCode中运行单元测试,使您可以充分利用XCode Debugger。一个简单的GUI,可帮助您可视化测试。显示堆栈跟踪。可通过简单(或不简单)的目标设置作为框架(对于Cocoa应用程序)进行安装;或轻松打包到您的iPhone项目中。”
我开始使用适用于iPhone的Google工具箱测试平台,并且对我来说非常有用。
请注意,Mac版Google工具箱(GTM)项目只是扩展/增强了Apple的SenTestingKit框架(它本身基于OCUnit)。正如他们在项目现场所说:
GTM对标准SenTestingKit进行了多项增强,使您可以在iPhone上执行UI单元测试,自动绑定单元测试,日志跟踪和单元测试,以及用于对代码进行静态和动态测试的工具。
请注意有关用户界面测试的以下注释:
GTM对用户界面单元测试提供了广泛的支持。它支持测试几乎所有标准Cocoa / UIKit UI对象的图像和/或内部状态,并使您可以轻松地将此支持扩展到自己的UI对象。
有关如何使用它的说明,请参见其“ 代码验证和单元测试 ”页面。
我意识到这是一个老问题,但是如果您更喜欢BDD风格的测试(rspec,Jasmine等)而不是xUnit风格的测试(Test :: Unit,JSUnit,JUnit等),那么您可以考虑签出Cedar。由于该语言支持闭包,因此Cedar将BDD风格的测试引入了Objective-C。
我们很高兴在Pivotal Labs的 iOS项目中使用Cedar ,并且我们正在积极进行改进。欢迎您提供任何反馈或建议cedar-discuss@googlegroups.com
我推荐gh-unit,它具有用于测试结果的漂亮GUI。
Sen:te(Xcode附带的测试框架的创建者)介绍了如何将OCUnit与iPhone项目结合使用:simple-iphone-ipad-unit-test。
《可可与爱》的马特·加拉格尔(Matt Gallagher)在单元测试方面有一篇很好的文章。
我建议您研究一下Kiwi,这是一个针对iOS的开源BDD测试框架: Kiwi
查看该项目的WIKI以启动或获取Daniel Steinberg的书“使用Kiwi测试驱动iOS开发” test-driving-ios-development
我使用SimpleUnitTest与iPhone和iPad库一起使用。
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
它带有一个单元测试Xcode模板,可以轻松添加一个单元测试类。包装GTM。
您可以从字面上将其放到活动项目中,并在3分钟或更短的时间内开始添加单元测试。
Specta是在XCTest之上运行的现代TDD(测试驱动开发)/ BDD(行为驱动开发)框架。它支持iOS和Mac OS X项目的单元测试。