您的位置:首页 > 移动开发 > IOS开发

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

2015-08-11 23:43 162 查看
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.单击下一步按钮。弹出了一个FileMerge界面,可以查阅更改。(这一步就是我们经常使用到的给边文件名字的方法)

6.如果确定是这样更改,就可以单击保存按钮。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 .
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: