• OCUnit单元测试学习


    源码:http://download.csdn.net/detail/chenscda/7253835

    ios7 ocunit是系统自带的,在创建project的时候是没有选项的,创建project的时候是自己默认带上的

    一、OCUnit概述

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

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

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

    框架会自动查找所有工程中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 sharedApplicationdelegate];

        

        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");

    }

    zhuan:http://my.oschina.net/w11h22j33/blog/204970

  • 相关阅读:
    centos7.6 使用yum安装mysql5.7
    解决hadoop本地库问题
    docker-compose 启动警告
    docker 安装zabbix5.0 界面乱码问题解决
    docker 部署zabbix问题
    zookeeper 超时问题
    hbase regionserver异常宕机
    (转载)hadoop 滚动升级
    hadoop Requested data length 86483783 is longer than maximum configured RPC length
    zkfc 异常退出问题,报错Received stat error from Zookeeper. code:CONNECTIONLOSS
  • 原文地址:https://www.cnblogs.com/AbelChen1991/p/3690334.html
Copyright © 2020-2023  润新知