首页 / 知识
关于cocoa:什么是单元测试Objective-C代码的最佳方法?
2023-04-13 13:10:00

What is the best way to unit test Objective-C code?单元测试目标C代码有哪些框架?我想要一个与苹果XCODE完美结合的框架。 Xcode包括XCEST,它类似于Objective-C单元测试框架ocUnit,它完全支持作为项目构建过程的一部分运行基于XCEST的单元测试。xcode的单元测试支持在xcode概述:使用单元测试中进行了描述。 回到Xcode2天,我写了一系列关于如何使用Xcode单元测试执行一些常见任务的日志:
尽管使用了ocunit而不是xctest,但概念基本相同。 最后,我还写了一些关于如何为Cocoa用户界面编写测试的文章;Cocoa的结构使得它相对简单,因为在大多数情况下,您不必旋转事件循环或类似的东西。
这使得不仅可以为模型级代码,还可以为控制器级甚至视图级代码进行测试驱动开发成为可能。 查看Gabriel Handford的GHUnit:
我开始使用谷歌的iPhone工具箱测试平台,这对我来说非常有用。 Mac版谷歌工具箱 检查一下眼科。苹果的开发者网络有一个很好的介绍。 我得出的结论是GHUnit是Objective-C最先进的测试框架。我在我的博客上做了一个测试框架的汇总。在部署(iPhone、模拟器或Mac OS本机)和断言功能方面,它是最灵活的。因为它基于GTM,它继承了GTM相对于SentingKit的所有优势,但也增加了更多的优势。另一个好处是它得到了非常积极的维护。 我已经努力将ocmock集成到GHUnit中,效果很好!。您可以在Github上获取代码。 我知道这是一个古老的问题,但是如果您喜欢BDD风格的测试(rspec、jasmine等)而不是XUnit风格的测试(test::Unit、JSUnit、JUnit等),那么您可以考虑查看Cedar。Cedar将BDD风格的测试引入到Objective-C中,因为该语言支持闭包。 我们很高兴地将Cedar用于关键实验室的iOS项目,我们正在积极改进它。欢迎在cedar-discus@googlegroups.com上提供任何反馈或建议。 请注意,Google Toolbox for Mac(GTM)项目只是扩展/增强了苹果的SentingKit框架(即,它本身基于ocUnit)。正如他们在项目现场所说:
请注意以下有关用户界面测试的注释:
有关如何使用它的说明,请参阅他们的"代码验证和单元测试"页面。 我还建议使用覆盖工具来查看代码的哪些部分被单元测试覆盖,哪些部分没有覆盖。可以使用gcov工具生成基本的行和分支代码覆盖率。如果您想生成好的HTML覆盖率报告,可以使用lcov和zcov。 Sen:te(Xcode中包含的测试框架的创建者)解释了如何将ocUnit用于iPhone项目:简单的iPhone iPad单元测试。 我推荐GH单元,它有一个很好的测试结果图形用户界面。 http://github.com/gabriel/gh-unit/tree/master Xcode中捆绑的单元测试支持(对于它的简单设置)和OCrunner(对于某些自动测试/咆哮的好处)是目前我最喜欢的OBJ-C单元测试设置。 这里有很多 列出目标C中的单元测试框架 MattGallagher的CocoaWithLove在单元测试方面有一篇很好的文章。 我建议研究Kiwi,一个面向iOS的开源BDD测试框架:几维鸟 查看该项目的wiki以启动或获取丹尼尔·斯坦伯格的书"用Kiwi测试iOS开发"。试驾iOS开发 我使用SimpleUnitTest与iPhone和iPad libs配合使用。 http://cbess.blogspot.com/2010/05/simple-iphone-ipad-unit-test.html 它附带了一个单元测试Xcode模板,可以轻松地添加单元测试类。包装GTM。 你可以直接把它放到一个活动的项目中,并在3分钟(或更短)内开始添加单元测试。 SPECTA是一个现代TDD(测试驱动开发)/BDD(行为驱动开发)框架,运行在XCEST之上。它支持iOS和Mac OS X项目的单元测试。 我希望你能使用"Sentestkit",从中你可以测试每一种方法。 |
最新内容
相关内容
linux基本命令框架?
linux基本命令框架?,系统,基础,网络,设备,管理,基础知识,环境,管理系统,概念,技术,新手如何自学linux安装linux系统,把自己喜欢的linux发行版安linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文Python中什么是反射?使用方法有哪
Python中什么是反射?使用方法有哪些?,信息,培训,状态,术语,检测,反射,属性,对象,字符串,方法,反射这个术语在很多语言中都存在,并且存在大量的靠谱的Python爬虫框架都有哪几个?
靠谱的Python爬虫框架都有哪几个?,官网,培训,爬虫,专文,框架,统计数据,辅助工具,网页,程序,以下内容,一些同学普遍认为仅剩Python才能够顺利实Python中有哪些方法可以解压文件?
Python中有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大Python列表类型list合并有哪些方法
Python列表类型list合并有哪些方法?,培训,方法,列表,可能会,数组,切片,下文,字符串,数据类型,请看,在Python编程语言中,有各种数据类型,比如字符零基础学习Python的四种方法
零基础学习Python的四种方法,基础,代码,基础知识,培训,发展,时间,知识,书籍,初学者,练习,近年来,随着移动互联网的发展,对Python人才的需求越来如何在Python中定义类方法和修改类
如何在Python中定义类方法和修改类属性?,代码,方法,培训,对象,实例,定义,结果,示例,赋值,属性,Python中的类还可定义使用@classmethod修饰的类提高Python 效率的 5 种高级方法
提高Python 效率的 5 种高级方法,代码,数字,函数,有限,设备,项目,工具,培训,列表,内存,任何编程语言的高级特征通常都是通过大量的使用经验才关于Python的高效学习方法
关于Python的高效学习方法,基础,培训,资料,质量,技术,系统,情况,学习方法,高效,初学者,今天给大家分享一下Python高效的学习方法,尽管每个人的学习python要注意的方法事项
学习python要注意的方法事项,代码,基础,环境,网络,时间,地方,分析,评论,人工智能,数据,python入门比较建议找一个视频课程,花一周时间快速过掉python修改列表元素有什么方法
python修改列表元素有什么方法,代码,数据,步长,元素,基础,位置,培训,列表,切片,方法,增删改查是处理数据最常见的方法,前两种说过了,这里就要说