iOS 单元测试

作为一位程序员,如果可以对自己的代码进行单元测试那将是极好的,懂测试的程序员才是思维严谨的工程师。苹果的xcode自带单元测试功能,废话少说,直奔主题。

创建单元测试模块

iOS 单元测试_第1张图片

如果创建时没有勾选该如何补救呢,哈哈,请往下看

可以在导航中选择 File->New->Target->选择iOS-test->选择iOS Unit Testing Bundle 新建一个测试target

iOS 单元测试_第2张图片

好了,创建好单元测试模块,我们现在去看看

iOS 单元测试_第3张图片

哎哟,多了单元测试模块哦,现在我们看到单元测试里面有 setUp 方法,跟 tearDown 方法,看看它们的作用吧。

//每次测试前调用,可以在测试之前创建在test case方法中需要用到的一些对象等

- (void)setUp ;

//每次测试结束时调用tearDown方法

- (void)tearDown ;

//性能测试方法,通过测试block中方法执行的时间,比对设定的标准值和偏差觉得是否可以通过测试

- (void)testPerformanceExample

[self measureBlock:^{

// Put the code you want to measure the time of here.

}];

如何判断单元测试是否通过了呢,那就是要用断言了

断言

//通用断言

XCTAssert(expression, format...)

//常用断言:

XCTAssertTrue(expression, format...)

XCTAssertFalse(expression, format...)

XCTAssertEqual(expression1, expression2, format...)

XCTAssertNotEqual(expression1, expression2, format...)

XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, format...)

XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, format...)

XCTAssertNil(expression, format...)

XCTAssertNotNil(expression, format...)

XCTFail(format...) //直接Fail的断言

举个例子吧

- (void)testExample {

//设置变量和设置预期值

NSUInteger a = 10;

NSUInteger b = 15;

NSUInteger expected = 24;

//执行方法得到实际值

NSUInteger actual = [self add:a b:b];

//断言判定实际值和预期是否符合

XCTAssertEqual(expected, actual,@"add方法错误!");

}

-(NSUInteger)add:(NSUInteger)a b:(NSUInteger)b{

return a+b;

}

你可能感兴趣的:(iOS 单元测试)