美文网首页
iOS开发中的单元测试

iOS开发中的单元测试

作者: Isy | 来源:发表于2016-07-03 21:16 被阅读129次

OCUnit

OCUnit是Xcode 4.x集成的单元测试框架,OCUnit中的测试分为两类,一类称为Logic Tests,另一类称为Application Tests。Logic Tests更倾向于所谓的白盒测试,用于测试工程中较细节的逻辑;Application Tests更倾向于黑盒测试,或接口测试,用于测试直接与用户交互的接口。

·添加单元测试

OCUnit是Xcode集成的,所以其与工程结合理应是最好的。添加到工程中的成本也理应最低。使用XCode创建新工程的流程中就有一个Include Unit Tests的选项,新的工程就会自动生成一个Logic Tests。

单元测试图1
向已经存在的工程中添加OCUnit Logic Tests也不复杂,只需要添加一个类型为:Cocoa Touch Unit Testing Bundle的Target即可。
向已存在的工程中添加OCUnit测试
向已有的额工程中添加一个测试Target时,XCode会自动生成一个Scheme,运行单元测试用例和Build原工程需要切换不同的Scheme。如果认为切换Scheme非常麻烦,也可在添加Target之前,在Manage Scheme菜单中取消Autocreate schemes

添加Target不创建Scheme
·创建测试用例

OCUnit的测试用例最常用的方法有三个

1.- (void)setUp:每个test方法执行前调用

2.- (void)tearDown:每个test方法执行后调用

3.- (void)testXXX:命名为XXX的测试方法

添加Target之时XCode已经自动创建了一个测试用例:UITestDemoTests,其中UnitTestDemo是工程的名字,该类中已经包含了setUp,tearDown和testExample三个方法

通过command+n,选择Objective-C test case class创建一个新的测试用例。通过Xcode创建的测试用例类死一个继承自SenTestCase(OCUnit由SEN:TE公司开发,因此基类命名为SenTestCase)的空类,需要模仿UnitTestDemoTests编写测试方法。

创建一个测试用例
开发者可以自己实现无返回值,且命名规则为testXXX的实例方法,并且使用框架提供的大量断言方法。

LogicTests与Application Tests的区别主要在setUp方法,Logic Tests只需在setUp方法中初始化一些测试数据,而Application Tests需要在setUp方法中获取主应用的AppDelegate,供test方法调用。

值得注意的是,OCUnit的test bundle是侵入主应用的,因此在使用过程中要十分注意,不要让单元测试的资源,造成诡异的Bug。

·运行测试

由于OCunit是集成在Xcode中的框架,因此在Xcode中运行也比较方便。切换到单元测试的scheme(如与工程公用的scheme则无需切换),Product->Test(或直接使用快捷键Command+U),框架会自动查找所有工程中SenTestCase的子类,运行其中全部命名类似testXXX的无返回值方法。

·测试反馈

OCUnit的失败方法会通过Console和Xcode Issues两个位置反馈,通过Xcode Issues可以直接定位到出现错误的单元测试代码行。Issue的提示信息就是在单元测试断言方法中定义的description。

未完 本文摘自

http://www.cocoachina.com/industry/20130724/6667.html

相关文章

  • iOS开发——单元测试

    iOS开发——单元测试 iOS开发——单元测试

  • 【开发技巧】单元测试

    iOS XCTest单元测试 iOS开发:XCTest单元测试(附上一个单例的测试代码) [iOS单元测试系列]单...

  • 测试替身在iOS开发中的实现整理

    开始之前 请允许先介绍在iOS开发测试中的一些基础框架和理论: 在iOS开发的过程中,我们常接触到的单元测试框架有...

  • 单元测试

    本文将介绍以下内容: iOS开发中添加单元测试的方法。 如何写单元测试用例及用例组。 介绍单元测试的一些基础概念。...

  • iOS

    iOS 编写高质量代码的方法10个加速Table Views开发的建议iOS 开发-单元测试fir.im Week...

  • iOS单元测试

    iOS单元测试初探以及OCMock使用入门 这段时间在工作之余研究了一下iOS的单元测试,试图在项目中引入开发自己...

  • iOS开发中的单元测试

    OCUnit OCUnit是Xcode 4.x集成的单元测试框架,OCUnit中的测试分为两类,一类称为Logic...

  • 【目录-学习笔记】

    学习IOS开发的目的是前端时间我司研发总监要求测试做单元测试,很不幸被抽中做IOS单元测试,当是并不是那么反对,技...

  • 单元测试

    内容 单元测试 参考文章: [iOS单元测试系列]单元测试框架选型 iOS单元测试:Specta + Expect...

  • iOS开发之单元测试

    本文侧重讲述如何在iOS程序的开发过程中使用单元测试。使用Xcode自带的OCUnit作为测试框架。 一、单元测试...

网友评论

      本文标题:iOS开发中的单元测试

      本文链接:https://www.haomeiwen.com/subject/furcjttx.html