对 Objective-C 代码进行单元测试的最佳方法是什么?
-
09-06-2019 - |
题
有哪些框架可以对 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 工具箱测试设备,它对我来说效果很好。
请注意,Google Toolbox for Mac (GTM) 项目只是扩展/增强了 Apple 的 SenTestingKit 框架(该框架本身基于 OCUnit)。正如他们在项目网站上所说:
GTM对标准SendEstingKit具有多种增强功能,使您可以在iPhone上进行UI单元测试,自动化装订单元测试,日志跟踪和单元测试,以及用于对代码进行静态和动态测试的工具。
请注意以下有关用户界面测试的评论:
GTM对用户界面单元测试有广泛的支持。它支持测试几乎所有标准可可/UIKIT UI对象的成像和/或内部状态,并使您可以轻松地将此支持扩展到自己的UI对象。
看看他们的“代码验证和单元测试”页面,了解如何使用它的说明。
我推荐 gh-unit,它有一个很好的 GUI 来显示测试结果。
这 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”,从中你可以测试每个方法。