美文网首页
单元测试

单元测试

作者: 刘铁崧 | 来源:发表于2020-09-09 22:40 被阅读0次

    1. 添加测试模块

    2. 添加测试用例类

    common + n


    3.使用

      1. 引入要测试类的头文件,自定义测试方法testAdd(必须以test开头),会用断言判断结果
    #import <XCTest/XCTest.h>
    #import "Tools.h"
    @interface TestTools : XCTestCase
    @end
    @implementation TestTools
    
    - (void)setUp {
        // Put setup code here. This method is called before the invocation of each test method in the class.
    }
    
    - (void)tearDown {
        // Put teardown code here. This method is called after the invocation of each test method in the class.
    }
    
    - (void)testAdd {
        int result = [Tools add:3 b:4];
        XCTAssertEqual(result,4); 
        // This is an example of a functional test case.
        // Use XCTAssert and related functions to verify your tests produce the correct results.
    }
    
    - (void)testPerformanceExample {
        // This is an example of a performance test case.
        [self measureBlock:^{
            // Put the code you want to measure the time of here.
        }];
    }
    @end
    
      1. 点击testAdd方法前运行箭头,或者快捷键cmd+u

    运行成功与失败结果:



    4. 测试性能(测试代码执行时间)

    可以在block中写入测试方法,点击小圆点可以看到代码执行时间等


    5. 开启代码覆盖率


    勾选gather coverage for


    • 查看测试代码覆盖率


    常用断言

    XCTFail(format…) 生成一个失败的测试;
    
    XCTAssertNil(a1, format...)为空判断,a1为空时通过,反之不通过;
    
    XCTAssertNotNil(a1, format…)不为空判断,a1不为空时通过,反之不通过;
    
    XCTAssert(expression, format...)当expression求值为TRUE时通过;
    
    XCTAssertTrue(expression, format...)当expression求值为TRUE时通过;
    
    XCTAssertFalse(expression, format...)当expression求值为False时通过;
    
    XCTAssertEqualObjects(a1, a2, format...)判断相等,[a1 isEqual:a2]值为TRUE时通过,其中一个不为空时,不通过;
    
    XCTAssertNotEqualObjects(a1, a2, format...)判断不等,[a1 isEqual:a2]值为False时通过;
    
    XCTAssertEqual(a1, a2, format...)判断相等(当a1和a2是 C语言标量、结构体或联合体时使用, 判断的是变量的地址,如果地址相同则返回TRUE,否则返回NO);
    
    XCTAssertNotEqual(a1, a2, format...)判断不等(当a1和a2是 C语言标量、结构体或联合体时使用);
    
    XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...)判断相等,(double或float类型)提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试;
    
    XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) 判断不等,(double或float类型)提供一个误差范围,当在误差范围以内不等时通过测试;
    
    XCTAssertThrows(expression, format...)异常测试,当expression发生异常时通过;反之不通过;(很变态) XCTAssertThrowsSpecific(expression, specificException, format...) 异常测试,当expression发生specificException异常时通过;反之发生其他异常或不发生异常均不通过;
    
    XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过;
    
    XCTAssertNoThrow(expression, format…)异常测试,当expression没有发生异常时通过测试;
    
    XCTAssertNoThrowSpecific(expression, specificException, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过;
    
    XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过
    
    
    XCTAssert(expression, format...)当expression求值为TRUE时通过
    

    相关文章

      网友评论

          本文标题:单元测试

          本文链接:https://www.haomeiwen.com/subject/lczeektx.html