之前一篇文章中说过iOS中的UITest界面测试,这一片文章主要来说一下iOS中的单元测试,首先要知道单元测试主要是用于逻辑代码的测试,不适合做UIViewController的测试。是一种通过代码监测代码的开发手段,常用语敏捷开发和测试驱动开发。关于测试覆盖率,测试覆盖率要达到多少,通常公司代码测试覆盖率从50%-70%不等。这篇文章就先来看一下单元测试的简单入门和使用,之后会更新文章,介绍更多和单元测试相关的东西以及单元测试中的一些注意事项。
1、要想使用单元测试,首先创建工程的时候要选中Include Unit Tests。
2、这里创建一个简单的继承于NSObject的ZWTools类,然后在这个类中写一个+ (NSInteger)addWithNum1:(NSInteger)a num2:(NSInteger)b;方法,主要用于计算两个数的和。然后以这个类来做单元测试。
+ (NSInteger)addWithNum1:(NSInteger)a num2:(NSInteger)b{
return a + b;
}
3、cmd + n ,选中 Unit Test Case Class,并且命名为ZWToolsTest。建议一般最好这样命名,在原本要测试的类后面加载Test。此时会看到系统自动生成四个方法。
4、在ZWToolsTest.m文件中导入要测试类的头文件#import "ZWTools.h"。
5、编写测试代码,并点击对应的菱形,运行测试代码。其中XCTAssert是断言的意思,如果[ZWTools addWithNum1:3 num2:4] == 7这个逻辑成立,运行的时候,左边的菱形按钮会出现绿色。如果运行不正常会出现红色,并在断言处报错。
- (void)testAdd{
XCTAssert([ZWTools addWithNum1:3 num2:4] == 7,@"测试代码出现错误");
}
其他说明:
关于菱形的说明,点击@implementation左边对应的菱形,会运行以下所有带菱形的测试代码。而点击非@implementation左边对应的菱形按钮,只会运行其中一个测试代码,如点击testAdd左边对应的菱形,只会测试testAdd这个方法内部的逻辑代码,其他测试代码不会受到影响。