单元测试 方法讲解

- (void)testExample {
    // This is an example of a functional test case.
    // Use XCTAssert and related functions to verify your tests produce the correct results.

#pragma mark - 为空判断
//    XCTAssertNil(nil,@"必须为空"); //正确
//    XCTAssertNil(@"",@"必须为空"); //错误
    
#pragma mark - 非空判断
//    XCTAssertNotNil(@"非空判断",@"非空正确,反之错误"); //正确
//    XCTAssertNotNil(nil,@"非空正确,反之错误");       //错误
    
    
#pragma mark - 表达式判断 1
//    XCTAssert(3 > 2, @"表达式为真,则正确,反之错误");//正确
//    XCTAssert(3 < 2, @"表达式为真,则正确,反之错误");//错误
    
#pragma mark - 表达式判断 2
//    XCTAssertTrue(3 > 2 , @"表达式为真,则正确,反之错误");//正确
//    XCTAssertTrue(3 < 2 , @"表达式为真,则正确,反之错误");//错误
    
#pragma mark - 表达式判断 3
//    XCTAssertFalse(3 < 2, @"表达式为假,则正确,反之错误");//正确
//    XCTAssertFalse(3 > 2, @"表达式为假,则正确,反之错误");//错误
    
#pragma mark - 变量关系判断  1
//    XCTAssertEqualObjects(@"1", @"1", @"判断参数是否相等,相等则通过,不等则不通过");//正确
//    XCTAssertEqualObjects(@"", @"",@"判断参数是否相等,相等则通过,不等则不通过");   //正确
//    XCTAssertEqualObjects(@"1", @"2",@"判断参数是否相等,相等则通过,不等则不通过");//错误
    
#pragma mark - 变量关系判断 2
//    XCTAssertNotEqualObjects(@"", @"2", @"判断参数是否不相等,相等则不通过,不等则通过");//正确
//    XCTAssertNotEqualObjects(@"1", @"1",@"判断参数是否相等,相等则不通过,不等则通过");//错误
    
#pragma mark - 变量关系判断 3
    
    //基本数据类型
//    XCTAssertEqual(1, 1,@"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//正确
//    XCTAssertEqual(1, 2,@"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//错误
    
    //字符串类型
    /*
    NSString *test1 = @"1";
    NSString *test2 = @"2";
    NSString *test4 = @"1";
    
    NSString *test3 = test1;
    XCTAssertEqual(test1, test3, @"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//正确
    XCTAssertEqual(test1, test2,@"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//错误
    XCTAssertEqual(test1, test4,@"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//错误
     */
    
    /*
    //数组类型
    NSArray *test1 = @[@1];
    NSArray *test2 = @[@1];
    NSArray *test4 = @[@2];
    
    NSArray *test3 = test1;
    
//    XCTAssertEqual(test1, test3,@"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//正确
//    XCTAssertEqual(test1, test2,@"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//错误
//    XCTAssertEqual(test1, test4, @"此方法,不仅判断值是否相同,类型,及指针类型都必须相同才可通过,否则不通过");//错误
    */
    //字典类型 同理
    
#pragma mark - 变量关系判断 4
//    XCTAssertNotEqual(1, 2,@"此方法,与 XCTAssertEqual 方法相反,相同则不通过,不同则通过");//正确
//    XCTAssertNotEqual(1,1, @"此方法,与 XCTAssertEqual 方法相反,相同则不通过,不同则通过");//错误
    
    //数组,字典 请自行举例

#pragma mark - 变量关系判断 5
//    XCTAssertEqualWithAccuracy(1, 2, 2,@"此方法在变量(double 或 float)判断时,添加了误差范围,在 (+ / - )误差范围内,为真时,则通过,反之不通过");//正确
//    XCTAssertEqualWithAccuracy(1, 4, 2, @"此方法在变量(double 或 float)判断时,添加了误差范围,在 (+ / - )误差范围内,为真时,则通过,反之不通过");//错误
    
#pragma mark - 变量关系判断 6
//    XCTAssertNotEqualWithAccuracy(1, 4, 2,@"此方法在变量(double 或 float)判断时,添加了误差范围,在 (+ / - )误差范围内,为真时,不通过,反之通过");//正确
//    XCTAssertNotEqualWithAccuracy(1, 3, 3,@"此方法在变量(double 或 float)判断时,添加了误差范围,在 (+ / - )误差范围内,为真时,不通过,反之通过");//错误
    

#pragma mark - 异常测试
//    XCTAssertThrows(<#expression, ...#>)//当expression发生异常时通过;反之不通过;
//    XCTAssertNoThrow(<#expression, ...#>)//当expression发生异常时不通过;反之通过;
    
//    XCTAssertThrowsSpecific(<#expression#>, <#exception_class, ...#>) //当expression发生 specificException 异常时通过;反之发生其他异常或不发生异常均不通过
//    XCTAssertNoThrowSpecific(<#expression#>, <#exception_class, ...#>) //当expression发生 specificException 异常时不通过;反之发生其他异常或不发生异常均通过
    
//    XCTAssertThrowsSpecificNamed(<#expression#>, <#exception_class#>, <#exception_name, ...#>); //当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过
//    XCTAssertNoThrowSpecificNamed(<#expression#>, <#exception_class#>, <#exception_name, ...#>);//当expression发生具体异常、具体异常名称的异常时不通过测试,反之通过
    
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值