有哪些框架可以对 Objective-C 代码进行单元测试?我想要一个与 Apple Xcode 完美集成的框架。
Xcode 包含 XCTest,它类似于 OCUnit,一个 Objective-C 单元测试框架,并且完全支持在项目构建过程中运行基于 XCTest 的单元测试。 Xcode Overview: Using Unit Tests 中描述了 Xcode 的单元测试支持。
回到 Xcode 2 天,我写了一系列关于如何使用 Xcode 单元测试执行一些常见任务的博客文章:
单元测试 Cocoa 框架
调试 Cocoa 框架单元测试
单元测试 Cocoa 应用程序
调试 Cocoa 应用程序单元测试
尽管使用的是 OCUnit 而不是 XCTest,但概念大致相同。
最后,我还写了几篇关于如何为 Cocoa 用户界面编写测试的文章; Cocoa 的结构方式使其相对简单,因为在大多数情况下您不必旋转事件循环或类似的东西。
信任但要验证。
单元测试 Cocoa 用户界面:Target-Action
单元测试 Cocoa 用户界面:Cocoa Bindings
这使得不仅可以为您的模型级代码进行测试驱动开发,还可以为您的控制器级甚至视图级代码进行测试驱动开发。
查看 Gabriel Handford 的GHUnit:
“GHUnit 的目标是:在 XCode 中运行单元测试,让您充分利用 XCode 调试器。一个简单的 GUI 来帮助您可视化您的测试。显示堆栈跟踪。可安装为框架(用于 Cocoa 应用程序),只需一个简单的 (与否)目标设置;或易于打包到您的 iPhone 项目中。”
请注意,Google Toolbox for Mac (GTM) 项目只是扩展/增强了 Apple 的 SenTestingKit 框架(即,它本身基于 OCUnit)。正如他们在项目网站上所说:
GTM 对标准 SenTestingKit 进行了多项增强,允许您在 iPhone 上进行 UI 单元测试、自动绑定单元测试、日志跟踪和单元测试,以及用于对代码进行静态和动态测试的工具。
请注意以下有关用户界面测试的注释:
GTM 广泛支持用户界面单元测试。它支持测试几乎所有标准 Cocoa/UIKit UI 对象的映像和/或内部状态,并且使您可以轻松地将这种支持扩展到您自己的 UI 对象。
有关如何使用它的说明,请参阅他们的“Code Verification and Unit Testing”页面。
我意识到这是一个老问题,但是如果您更喜欢 BDD 样式测试(rspec、Jasmine 等)而不是 xUnit 样式测试(Test::Unit、JSUnit、JUnit 等),那么您可以考虑查看 { 1}。 Cedar 为 Objective-C 带来了 BDD 风格的测试,因为该语言支持闭包。
我们很高兴在 Pivotal Labs 将 Cedar 用于我们的 iOS 项目,并且我们正在积极改进它。欢迎通过 cedar-discuss@googlegroups.com 提供任何反馈或建议
Unit Testing support bundled within xcode(因为它的简单设置)结合 ocrunner(为了一些自动测试/咆哮的好处)是目前我最喜欢的 Obj-C 单元测试设置。
我建议研究 Kiwi,这是一个适用于 iOS 的开源 BDD 测试框架:Kiwi
查看项目的 WIKI 以开始或获取 Daniel Steinberg 的书“Test Driving iOS Development with Kiwi”test-driving-ios-development
我使用 SimpleUnitTest 与 iPhone 和 iPad 库一起使用。
http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html
它带有一个单元测试 Xcode 模板,可以轻松添加单元测试类。包装 GTM。
您可以将其放入活动项目中,并在 3 分钟(或更短)内开始添加单元测试。
我希望您可以使用“SenTestKit”,您可以从中测试每种方法。