iphone开发之单元测试SenTestCase

使用xcode开发很长一段时间了,可是并没有使用其中支持的单元测试的功能,所以特别留意了一下使用单元测试的方式。

l  iPhoneSDK3.0开始直接支持单元测试,可以创建Unit test bundle形式的target。方便了单元测试代码的编写。

l  还有一个是用google-toolbox-for-mac中带的iPhone Unit Test 框架,其实此框架也是基于OCUnit库,但是区别是google-toolbox-for-mac添加了一部分自己的代码从而实现有限的UI测试。

Xcode中支持两种形式的单元测试:Logic TestsApplication Tests

n  其中Logic Tests主要测试程序静态的函数逻辑功能,在程序的编译(Build)阶段进行,并且只能在模拟器中使用。

n  Application Tests在程序的运行(Run)阶段进行,可以更全面的测试程序运行的一些状态功能,包括AppDelegateXibviewController等的加载和程序启动后的一些功能,并且不能在模拟器中使用而只能在真机上使用。

1:测试环境创建

添加测试target到工程

记得添加SenTestingKit.framework到测试的target中,这样才能支持测试

这是一个从SenTestCase继承的class,测试代码在里面实现。

2.编写测试函数

测试函数的结构为

- (void) test<test_case_name> {

   ...     // Set up, call test-case subject API.

   ST...   // Report pass/fail to testing framework.

   ...     // Tear down.

}

函数命名以test为前缀,并且返回值为void,不带参数。

其中Set UpTear down可以单独拿出来写两个函数

- (void) setUp {

   test_subject = [[MyClass new] retain];

   STAssertNotNil(test_subject, @"Could not create test subject.");

}

- (void) tearDown {

   [test_subject release];

}

这样在调用测试函数之前会自动调用setUp 函数,之后会自动调用tearDown 函数。当然,如何写出好的测试代码,这个还需要进一步的学习。

准确的说Test Cases不需要运行,编译的时候就运行了。尝试 Build Unit Test Target, 你会直接得到一个错误,就像编译错误一样显示在Xcode里面。可以在AppTarget加上Unit Testdenpendency 这样,每次Build and Go的时候Test Cases都会运行一次,如果有错,马上会停下来,显示错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值