iOS开发中使用OCUnit进行单元测试

最近看了一下单元测试相关的内容,虽然对单元测试,有很多开发人员有不同的意见,但是我觉得单元测试对整个项目和个人的代码质量提高有很高的促进作用.

单元测试和 TDD开发的解释网上很全,比如:

https://zh.wikipedia.org/zh/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91

http://baike.baidu.com/link?url=vCJ5aJAi-KxpXQt6zdKkskoegKEemQhCfnsyxSuSerRsRtOk_KNAbfqDkpMFV6NT

关于iOS的单元测试的介绍也有很多.这里就不摘录了,可以自己去看一下

http://www.cocoachina.com/applenews/devnews/2013/0724/6667_2.html


OCUnit 分为功能测试(application test)和逻辑测试(logic test) 主要区别是 功能测试需要在 setup函数获取 APPDelete 调用视图资源

下面的内容只是个人参看网上的指导小小实验了一下iOS中的单元测试,以后在编写代码的时候会带上单元测试.

苹果官方代码示例中也有一个Demo, https://developer.apple.com/library/ios/samplecode/UnitTests/Introduction/Intro.htmlD

OCUnit是XCode集成的,所以其与工程的结合理应是最好的,添加到工程中的成本也理应最低。

首先创建工程的时候勾选“Include Unit Tests”的选项, 在Xcode5中就是默认勾选的.

iOS开发中使用OCUnit进行单元测试_第1张图片

如果为以创建的工程添加单元测试可以添加一个Target 选择 cocoa Touch Unit Testing Bundle 创建一个测试Target

iOS开发中使用OCUnit进行单元测试_第2张图片

 添加完成就是这样的,




在 UnitTestTests.m 中 默认有三个方法:

- (void)setUp

{

    [super setUp];

    // Put setup code here. This method is called before the invocation of each test method in the class.

}

- (void)tearDown

{

    // Put teardown code here. This method is called after the invocation of each test method in the class.

    [super tearDown];

}

- (void)testExample

{

    XCTFail(@"No implementation for \"%s\"",__PRETTY_FUNCTION__);

}

1. - (void)setUp:每个test方法执行前调用
 
2. - (void)tearDown:每个test方法执行后调用
 
3. - (void)testXXX:命名为XXX的测试方法
你创建的测试方法必须 以test开头的无返回值的不带参数的函数, 系统会自动检测这样的方法并执行测试
那系统默认给我们创建了例子,我们就可以照样子编写测试用例了. 按照官方单元测试指南的说明:https://developer.apple.com/legacy/library/documentation/DeveloperTools/Conceptual/UnitTesting/00-About_Unit_Testing/about.html

在Xcode4中默认创建的测试类是继承  SenTestCase的子类,SenTestingKit 是Apple 集成的第三方库 ,我们测试需要创建一个继承SenTestCase的子类来实现.
在Xcode5中默认创建的测试类是集成 XCTestCase的子类,苹果建议我们使用XCTestCase的子类来实现单元测试.
我们就创建一个简单的函数测试一下:
创建一个  CaculatorHandle类 然后写一个简单的函数:

- (CGFloat)additionWithFirstPar:(CGFloat)firstPar secondPar:(CGFloat)secondPar {

    return (firstPar + secondPar);

}

测试类实现:

iOS开发中使用OCUnit进行单元测试_第3张图片

然后 commend + U 快捷键 运行测试程序.

如果有错误就会跳到错误位置.

至此,最简单的单元测试已经可以运行了,更多的项目中的单元测试还需结合功能实现和结构设计来编写测试用例测试.

有机会我会继续编写一些项目中的测试用例.

希望大家都能将单元测试执行起来.



你可能感兴趣的:(unit,unit,调试,ios开发,开发人员,testing,tests)