ios的单元測试OCUnit以及更新了之后的XCTestCase

Posted blfbuaa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios的单元測试OCUnit以及更新了之后的XCTestCase相关的知识,希望对你有一定的参考价值。

1、像一般创建项目的步骤一样。创建一个用于測试的项目或者打开一个待測试的项目。

(oc是5.0之前所使用的測试,如今用的是XCtestCase,默认会创建一个主的測试类。曾经版本号可能非常多步骤省去)

例如以下:我们能够看到一个text中的測试文件,如今全部測试类都是继承XCTestCase类。

2、写入对应的測试用例在測试类,測试类中对要測试的类须要进入对应的类的头文件,这个是理所应当的。然后执行“执行測试”。快捷键:command+U或者product—> test。

以下是是执行成功之后的文档。

技术分享

上面就是一个简单的測试成功的样例。



2、不同版本号之间的区别:

熟悉OCUtest的人应该非常快就能够熟悉OCUnit。由于一般都是一样的,XCTest是对OCUnit进一步的封装。


存在下面一点微小的差异:
1)使用不同的框架,測试用例须要继承不同的基类,XCTest继承XCTestCase基类,而OCUnit继承SenTest基类。
2)由于继承的基类不同,所以那些断言的方法名字的前缀也会发生改变。XCTest中的断言方法是XCT——也就是前面几个字母。相同OCUint中是ST。是SenTest的前缀。


3)(最大的差别)在XCTest中,使用类方法。使用者能够使用类方法的级别的setUp和tearDown方法。让測试代码更加的合理。

更加的有效控制測试方法之间的隔离环境的问题。我们
4)到了6.0之后,省略了类方法,直接就是实例的setUp(进入)和tearDown(出来)方法和对应的实例方法。

例外两个方法我们能够从英文上面看出来,一个是測试功能性的样例,一个是測试性能上的样例。

技术分享

能够看上面红色地方添加了检測代码性能的方法。


3、如今的xcode中都能够进行通过一个可管理的大量測试用例"分拆逻辑測试"。在代码库的增长和进化方面会产生非常多不同。

OCUnit和XCTest兼容性,他们之间的转化是基于target——>by ——> target

步骤:
1.选择 Edit > Refactor > Convert OCUnit  to  XCTest。


2.点击下一步,进入到下一个工作表。
3.在出现的表单中,选择要转换的測试目标。


4.要查看一个特定的目标能否与 XCTest 转换。请单击其名称。


5.单击下一步button。弹出了一个FileMerge界面,能够查阅更改。(这一步就是我们常常使用到的给边文件名称字的方法)
6.假设确定是这样更改,就能够单击保存button。Xcode会把更改写入文件。
參看链接:
http://www.cocoachina.com/ios/20140717/9168.html


4、书写測试的是应该注意一些细节:

1)測试用例中的方法应该是曾经缀为test,我们经常写为DISABLE_test… 这样就不会測试,由于识别仅仅是识别test开头的。

2) 測试须要一个放置的位置。比方我们測试一个用例的时候我们能够创建对应的类,而且继承XCTestCase。在xcode中直接选择创建測试的类就好了。

3)測试要有一定的语气效果,ios中表达预期的效果一般使用断言来表示。

4)xcTestCase中測试都是依照一行行来进行測试,假设失败,断言会抛出异常。

5)測试用例,測试用例(能够仅仅有一个方法,或者多个方法),运行的循序setup——> 測试用例的方法——> teardown .




























以上是关于ios的单元測试OCUnit以及更新了之后的XCTestCase的主要内容,如果未能解决你的问题,请参考以下文章

iOS单元測试:Specta + Expecta + OCMock + OHHTTPStubs + KIF

[iOS翻译]《iOS7 by Tutorials》在Xcode 5里使用单元測试(上)

Android进阶Junit单元測试环境搭建以及简单有用

ios单元測试之GHUnit

Xcode 4 中的 SenTest OCUnit

OCUnit/XCode 单元测试的优秀测试运行器