iOS15-单元化测试

2020-04-16  本文已影响0人  echo海猫

iOS - 单元化测试学习记录

将项目划成小的单元,进行测试,规范架构和编码,回归测试(测试之前的版本,为了防止耦合性的功能出现问题)codecoverage代码覆盖率 越高越好
单元测试可降低耦合性
何为单元:单一界面,单一功能等都称作一个小单元
单元测试和我们有什么关系?或者说对我们工作有什么关系?
增加测试能力
做单元测试的成本和收获是什么:
成本:自然要花很多时间去做测试架构的搭建,增加项目进度
收获:提升代码质量、提升团队协作效率、提升代码的健壮性、提高项目自动化测试占比
单元测试两大原则:互不干扰、单一变量原则

1、逻辑测试

什么是逻辑测试?
逻辑测试是指对项目工程中的逻辑方法,工具等进行的Test测试。然后启动test进行方法检验,常见的方法为

-(void)testLogic{       
        //1、建立正确的调用逻辑
    int num1 = 10;
    int num2 = 20;
    //2、使用
    int num3 = [self.vc logic:num1 num2:num2];
    //3、判断是否正确,做出异常log 
        //XCTAssertEqual(<#expression1#>,       <#expression2, ...#>)代表逻辑结果的判断,可验证是否符合预期需求结果,“...”代表可以多参数,num3为逻辑方法的返回值,30位期盼值,后面可写异常情况抛出的log信息
    XCTAssertEqual(num3, 30,@"逻辑出错,异常: ========");
}

如果逻辑代码出错,代表你的code是有问题的。需要细心检查,解决问题。

2、性能测试

性能测试:顾名思义就是对项目中需要进行耗时,占内存等的情况进行性能测试,已控制代码性能在我们需求范围之内,不要过度的影响用户体验,但目前苹果只开放了一个,就是XCTPerformanceMetric_WallClockTime

- (void)testPerfomanceExampleVC{
    [self measureBlock:^{
        //performance为要测试性能的方法
        [self.vc performance];
    }];
}

- (void)testPerfomanceExample{
    [self measureMetrics:@[XCTPerformanceMetric_WallClockTime] automaticallyStartMeasuring:NO forBlock:^{
        [self.vc performance];
        
        //更精确的计算
        [self startMeasuring];
        //要测试性能的方法
        [self.vc performance];
        [self stopMeasuring];
    }];
}

具体代码和测试架构搭建,可参考AFNetworking框架的自动化测试类,后续会持续更新...

上一篇下一篇

猜你喜欢

热点阅读