原则上,是否使用测试框架都不会影响
单元测试结果,但是“工欲善其事,必先利其器”使用
单元测试框架更便于我们测试和分析结果。
主要的iOS单元测试框架有:
OCUnit,是开源测试框架,与Xcode工具集成在一起使用非常方便,测试报告以文本形式输出到输出窗口;
GHUnit,是开源测试框架,它可以将测试报告以应用形式可视化输出到设备或模拟器上,也可以以文本形式输出到输出窗口;GHUnit可以测试OCUnit编写的
测试用例;
OCMock,是开源测试框架,它主要为测试提供Mock对象(伪对象)。
添加OCUnit到工程
添加OCUnit到工程中有两种方法,一种是在创建工程时添加,勾选“include Unit Tests”;另一种是在现有工程中添加“Cocoa Touch Unit Testing Bundle”Target来实现。下面我们详细介绍这两种添加过程。
1、创建工程时候勾选“include Unit Tests”
该种方式添加的单元测试属于应用测试(Application Testing)。在创建一个工程时,如果采用“Single View Application”模板,在选项中勾选“include Unit Tests”即可在工程中添加OCUnit框架。
工程创建完,在导航面板中会多一个PITaxTests组(<工程名>Tests),包含PITaxTests测试类。在右边的Target栏中多了一个PITaxTests Target。
但是打开Scheme列表还只有一个PITax,这是我们需要注意的。运行它可以通过:选择菜单Product→
Test或工具栏中Test按钮(下拉Run按钮选择)或快捷键command+U等几种方式。
如果打开Frameworks组会发现添加了SenTestingKit.framework,SenTestingKit.framework就 是OCUnit框架。因为单元测试框架一般命名为xUnit,如Java的单元测试框架是
JUnit,.NET单元测试框架是NUnit等,OCUnit 是Objective-C单元测试框架之意。
2、现有工程中添加Target实现
该种方式添加的单元测试,属于逻辑测试(Logic Testing)。在一个现有工程中,选择菜单File→New→Target…,选择模板iOS→Other中的 “Cocoa Touch Unit Testing Bundle”。
点击Next按钮,在Product Name项目中输入LogicTest,创建完成后,在导航面板中多出了一个LogicTest组,包含LogicTest测试类。在右边的Target栏中多了一个LogicTest Target。