博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OCUnit单元测试学习
阅读量:6819 次
发布时间:2019-06-26

本文共 1799 字,大约阅读时间需要 5 分钟。

hot3.png

一、OCUnit概述

添加OCUnit到工程中有两种方法,一种是在创建工程时添加,勾选“include Unit Tests”;另一种是在现有工程中添加“Cocoa Touch Unit Testing Bundle”Target来实现。详细添加过程略。

测试方法的方法名必须test开头,测试方法的个数没有限制。

一个完整的测试类组成像下图:

04174106_I2Bk.jpg

框架会自动查找所有工程中SenTestCase的子类,运行其中全部命名类似testXXX的无返回值方法。

setUp方法是初始化方法,tearDown方法是释放资源的方法,setUp和tearDown方法在每次调用测试方法之前和之后调用,因此在测试类运行的生命周期中这两个方法可能多次运行。如下所示:

5

--------------------------------------------------------------------------------------------------------------

二、代码示例

ZYViewController.h:

@property (weak, nonatomic) IBOutlet UITextField *textField;

ZYViewController.m:

- (int)doubleValue:(int)value{

    

    return value * 2;

    

}

1、简单测试实例方法(单个测试用例);

- (void)testDoubleValue{

    ZYViewController* viewController = [[ZYViewController alloc] init];

    int value = 1;

    int expect = value*2;

    int doubleValue = [self.viewController doubleValue:value]; 

 

    XCTAssertTrue(expect == doubleValue, @"期望值:%d,实际值:%d",expect,doubleValue);

}

2、循环测试实例方法(多个测试用例);

- (int)getValue{

    

    static int value = 1;

    

    value +=1;

    

    NSLog(@"test 2 value:%d",value);

    

    return value;

}

- (void)doTest:(int)value expect:(int)expect{

    

    int doubleValue = [self.viewController doubleValue:value];

    

    XCTAssertTrue(expect == doubleValue, @"期望值:%d,实际值:%d",expect,doubleValue);

    

}

- (void)testDoubleValue{

    

    for (int count = 0; count < 10; count++) {

        

        int value = [self getValue];

        

        [self doTest:value expect:value*2];

    }

    

}

3、测试异步调用(UI操作、网络等操作);

- (void)testInput{

    

    ZYAppDelegate* delegate = [[UIApplication sharedApplication] delegate];

    

    UIWindow *window = delegate.window;

    

    viewController = (ZYViewController*)window.rootViewController;

    

    viewController.textField.placeholder = @"请输入...";

    

    [[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:10]];

    

    XCTAssertTrue([viewController.textField.text length]>0, @"textField had not input");

}

转载于:https://my.oschina.net/w11h22j33/blog/204970

你可能感兴趣的文章
输出日期下一天
查看>>
html5 button 做超链接
查看>>
day18文件处理方式&生成器
查看>>
【POJ】1276 Cash Machine 【背包问题】
查看>>
android 股票数据通过日K获取周K的数据 算法 源码
查看>>
关于Linux运维的一些题目总结
查看>>
原生js实现查询天气的小应用
查看>>
分享两个必应壁纸接口,可用来获取高质量壁纸和故事
查看>>
tomcat启动脚本
查看>>
ASP.NET-FineUI开发实践-10
查看>>
小猪决定做一件尝试
查看>>
linux下jdk的安装:
查看>>
Ajax_ajax模板引擎 ---tmplate.js处理数据和标签拼接
查看>>
微信小程序-下拉松开弹不回去顶部留一段空白
查看>>
[摘录]感受弗兰克尔的故事
查看>>
jmeter响应时间与postman响应时间为什么不一样?
查看>>
HTTPonly属性
查看>>
WindowsDriver_知识_点滴
查看>>
显示磁盘信息
查看>>
关于使用索引的一些经验
查看>>