单元测试 方法讲解

来源:互联网 发布:山东大学网络教育期末考试 编辑:程序博客网 时间:2024/06/17 13:20
- (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发生具体异常、具体异常名称的异常时不通过测试,反之通过    }