作为一位程序员,如果可以对自己的代码进行单元测试那将是极好的,懂测试的程序员才是思维严谨的工程师。苹果的xcode自带单元测试功能,废话少说,直奔主题。
创建单元测试模块
如果创建时没有勾选该如何补救呢,哈哈,请往下看
可以在导航中选择 File->New->Target->选择iOS-test->选择iOS Unit Testing Bundle 新建一个测试target。
好了,创建好单元测试模块,我们现在去看看
哎哟,多了单元测试模块哦,现在我们看到单元测试里面有 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;
}
网友评论