XCTest

此处先有链接


单元测试

App由一个个功能组成,每一个功能则由相应的函数来组成,单元测试就是针对App里面的函数进行测试,有了它能使我们的项目更加的健壮,使用前提是用代码来测试所写方法,每个测试方法都是独立的.

### XCTest

XCTest就是XCode为我们提供的一个框架,它提供了各个层次的测试。

步骤:

每个XCode创建iOS的工程中都有一个叫做”工程名Tests”的分组,这个分组里就是XCTestCase的子类,XCTest中的测试类都是继承自XCTestCase。

例如新建一个工程(Demo)就能看到

XCTest_第1张图片

相应的测试Target叫做'YYDemoTests'.每个测试文件都可以独立定义一个XCTest的子类,每个方法以test开头即可。使用苹果系统的assert风格,可以判断测试是不是满足某个特定的条件,不符合的话在执行的时候就会爆出Error,定位出有问题的行。

**使用**

* 测试方法的命名

XCTest中所有的测试用例的命名都是以test开头的

* setUp

用于在测试用例运行前,做一些初始化工作

* tearDown

在所有的测试用例都执行完毕后执行

* 测试用例可以单独执行,也可以相同文件方法一起执行

* 测试的方法在控制台都会输出该方法运行的时间,如图


XCTest_第2张图片

* 举例

- (void)testParseDict

{

//given

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"haha",@"userName",

@"10",@"userAge",

@"China",@"country",

@"modelId",@"id",

nil];

Model *model = [[Model alloc] init];

//when

[model autoParseWithDict:dict];

//then

XCTAssertNotNil(model.userName,@"parseDict Error");

}

XCTest提供的断言有很多,可以进行值的检测:

* XCTAssertNil

* XCTAssertNotNil

* XCTAssert

* XCTAssertTrue

* XCTAssertFalse

* XCTAssertEqualObjects

* XCTAssertNotEqualObjects

* XCTAssertEqual

* XCTAssertNotEqual

* XCTAssertGreaterThan

* XCTAssertGreaterThanOrEqual

* XCTAssertLessThan

* XCTAssertLessThanOrEqual

你可能感兴趣的:(XCTest)