ios单元测试实践

单元测试作为测试开发同学必须掌握的一门技能,在测试中很受重视,因为本人在做测试之前做过ios开发,于是就拿出之前的项目代码进行了练习,希望通过我的这篇文章,小哥哥小姐姐能对ios单元测试有个基本了解,会写基本的ios单元测试代码。

单元测试的定义是对可以测试的最小单元进行测试,这里的最小单元可以是一个函数代码块,可以是一个UI操作。我们就拿函数代码块来举例说明。测函数代码块,也可以理解为测试研发自己写的函数方法,说白了就是通过调用这个方法,看调用完的结果是否是这个方法本身该实现的功能, 你比如研发同学经常会封装一些工具类,如果我们对这些工具类方法进行单元测试,加入a方法,方法是-(BOOL)isLegalTelephoneNumber(NSString *)str{},我们可以看到这个方法的入参是字符串,返回是布尔值,它的功能是判断一个字符串是否是合法的手机号,那我们测试的思路就是把一个字符串(15000000001)作为参数传到a方法,调用一下,然后我们的断言就是如果调用方法后返回true,就断言成功,返回false,断言失败。

我们来看一个我们项目里的例子。

下面的代码是研发自己写的一个方法

- (NSString *)getAreaStr:(STPickerViewSelectedModel *)model {

    NSString *areaName = [NSString stringWithFormat:@"    %@",model.ProvinceName];

    if (!kStringIsEmpty(model.CityName)) {

        areaName = [NSString stringWithFormat:@"    %@ %@",model.ProvinceName,model.CityName];

        

    }

    if (!kStringIsEmpty(model.AreaName) ){

        areaName = [NSString stringWithFormat:@"    %@ %@ %@",model.ProvinceName,model.CityName,model.AreaName];

        

    }

    return areaName;

}

我们可以看出上面的方法入参是STPickerViewSelectedModel类型(自定义的)一个model类型的数据,返回值是字符串,功能是给它传一个STPickerViewSelectedModel类型的数据,它给你返回地区字符串,我们就测我给你一个STPickerViewSelectedModel类型的数据,你能否给我返回地区字符串。

这个方法的单元测试的代码如下:

方法名字就是getAreaStr这个方法能否给我返回地区字符串

-(void)testPickerFontViewCallgetAreaStrIsreturnAreaStr{

//初始化数据

    STPickerViewSelectedModel * model = [[STPickerViewSelectedModel alloc]init];

    //mock数据

    model.ProvinceName = @"山东省";

    model.CityName = @"济南市";

    //声明方法

    SEL getAreaStr = NSSelectorFromString(@"getAreaStr:");

    //调用方法

    NSString * areaName = ((NSString * (*) (id,SEL,STPickerViewSelectedModel *))objc_msgSend)(self.pickerFrontView,getAreaStr,model);

    //断言

    BOOL isSuccess = [areaName isEqualToString:@"    山东省 济南市"] ? YES : NO;

    assertTrue(isSuccess);

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值