Fork me on GitHub

深度解析iPhone中项目单元测试

深度解析iPhone中项目单元测试是本文要介绍的内容,在XcodeiPhone SDK 3.0之后,已经内置了单元测试的功能,开发者可以借助单元测试写出更健壮更正确的代码。

文章使用的SDK版本是3.2.3。 Xcode提供了两种单元测试方式,分别是逻辑测试与应用测试,逻辑测试用于检验那些独立无环境限制的函数,正是如此,逻辑测试无需启动模拟器或真机,直接在build阶段就完成了。应用测试用于检测你的iPhone应用程序,可以测试包括界面操作等各方面行为。

逻辑测试

建立逻辑测试步骤:

在iPhone项目里添加一个新target,并选择iPhone OS-Cocoa Touch-Unit Test Bundle,然后命名并直接添加到哪个iPhone项目下。

设置单元测试的target为当前激活的target

为了整理方便,可新建组专门放置测试文件。添加测试文件选择添加新文件,并选择iPhone OS-Cocoa Touch Class-Objective-C test case class,在后续的命名时特别注意要添加到单元测试的target上,且只可勾选一个。

新建完毕后,将测试文件修改为如下形式:

Objective-c代码 

 1 // 头文件     
2 #import <SenTestingKit/SenTestingKit.h>
3 #import <UIKit/UIKit.h>
4
5 @interface testfirst : SenTestCase
6 {
7
8 }
9
10 - (void)testFirst;
11 @end
12
13 // 实现文件
14 @implementation testfirst
15 int get(int i)
16 {
17 return i;
18 }
19
20 - (void)testFirst
21 {
22 STAssertTrue(get(0), @"Must Fail");
23 }
24
25 @end
26
27 // 头文件
28 #import <SenTestingKit/SenTestingKit.h>
29 #import <UIKit/UIKit.h>
30
31 @interface testfirst : SenTestCase
32 {
33
34 }
35
36 - (void)testFirst;
37 @end
38
39 // 实现文件
40 @implementation testfirst
41 int get(int i)
42 {
43 return i;
44 }
45
46 - (void)testFirst
47 {
48 STAssertTrue(get(0), @"Must Fail");
49 }
50 @end


注意需要导入SenTestingKit的framework,此framework不在列表中,添加时需要指定路径,在本机上是/Developer/Library/Frameworks/SenTestingKit.framework

逻辑测试步骤:

选择build,如果没有错误,则编译成功,如果有错误,则Xcode编译失败,并指出错误之处。

测试的函数签名必须是(void)testXXX;

posted on 2012-02-08 11:51  pengyingh  阅读(1050)  评论(0)    收藏  举报

导航