有哪些框架可以对 Objective-C 代码进行单元测试?我想要一个与 Apple Xcode 完美集成的框架。

有帮助吗?

解决方案

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

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

尽管使用 OCUnit 而不是 XCTest,但概念基本相同。

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

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

其他提示

查看 GH单元 作者:加布里埃尔·汉德福德:

“GHUnit 的目标是:

运行XCode中的单元测试,使您可以充分利用Xcode调试器。一个简单的GUI,可帮助您可视化测试。显示堆栈跟踪。可以用简单(或非)设置的框架(适用于可可应用程序)安装;或易于包装到您的iPhone项目中。”

我开始使用 iPhone 的 Google 工具箱测试设备,它对我来说效果很好。

Mac 版谷歌工具箱

查看 OC单元. 。Apple 的开发者网络 很棒的介绍.

请注意,Google Toolbox for Mac (GTM) 项目只是扩展/增强了 Apple 的 SenTestingKit 框架(该框架本身基于 OCUnit)。正如他们在项目网站上所说:

GTM对标准SendEstingKit具有多种增强功能,使您可以在iPhone上进行UI单元测试,自动化装订单元测试,日志跟踪和单元测试,以及用于对代码进行静态和动态测试的工具。

请注意以下有关用户界面测试的评论:

GTM对用户界面单元测试有广泛的支持。它支持测试几乎所有标准可可/UIKIT UI对象的成像和/或内部状态,并使您可以轻松地将此支持扩展到自己的UI对象。

看看他们的“代码验证和单元测试”页面,了解如何使用它的说明。

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

我已经努力整合 OCMock 进入 GHUnit,效果很好!您可以在以下位置获取代码 github.

我意识到这是一个老问题,但如果您更喜欢 BDD 风格的测试(rspec、Jasmine 等)而不是 xUnit 风格的测试(Test::Unit、JSUnit、JUnit 等),那么您可以考虑查看 雪松. 。Cedar 将 BDD 风格的测试引入 Objective-C,现在该语言支持闭包。

我们很高兴在我们的 iOS 项目中使用 Cedar,网址为 关键实验室, ,我们正在积极努力改进它。欢迎任何反馈或建议,请发送电子邮件至 cedar-discuss@googlegroups.com

我还建议使用覆盖率工具来查看代码的哪些部分被单元测试覆盖,哪些部分没有。可以使用以下命令生成基本行和分支代码覆盖率 GCOV 工具。如果你想生成漂亮的 HTML 覆盖率报告,有 LCOV零COV 就是这样做的。

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

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

xcode 中捆绑了单元测试支持 (因其简单的设置)结合 奥克伦纳 (对于一些自动测试/Growl 的好处)是目前我最喜欢的 Obj-C 单元测试设置。

Sen:te(Xcode 附带的测试框架的创建者)解释了如何在 iPhone 项目中使用 OCUnit: 简单的 iphone-ipad-单元测试.

《Cocoa with Love》的马特·加拉格尔 (Matt Gallagher) 有一个 非常好的文章 关于单元测试。

我建议研究 Kiwi,一个适用于 iOS 的开源 BDD 测试框架:猕猴桃

查看该项目的 WIKI 来启动或获取 Daniel Steinberg 的书“Test Driving iOS Development with Kiwi”测试驱动 ios 开发

我使用 SimpleUnitTest 与 iPhone 和 iPad 库配合使用。

http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html

它附带了一个单元测试 Xcode 模板,可以轻松添加单元测试类。包裹 GTM。

您实际上可以将其放入活动项目中,并在 3 分钟(或更短的时间内)开始添加单元测试。

光谱 是一个现代的 TDD(测试驱动开发)/BDD(行为驱动开发)框架,运行在 XCTest 之上。它支持 iOS 和 Mac OS X 项目的单元测试。

我希望你可以使用“SenTestKit”,从中你可以测试每个方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top