单元测试的好处是可以在其中随意写测试代码而不会影响到主程序的功能;也许和个人所在公司和项目的原因,在实际开发中单元测试几乎未用
例
新建一个工程,在工程中新建一个类为Test。定义一个计算两个值和的类方法:
Test.h:
//计算两数之和
+ (NSInteger)sumWithPartOne:(NSInteger)one partTwo:(NSInteger)two;
Test.m:
+ (NSInteger)sumWithPartOne:(NSInteger)one partTwo:(NSInteger)two;
{
return one + two;
}
一般地,我们可以在相应使用你所创建的类中引入它,这里我将Test.h引入ViewController中并写简单测试代码:
NSLog(@"两数之和: %zd", [Test sumWithPartOne:88 partTwo:9]);
//1.开发功能逻辑代码
//2.可以将测试代码 写在主程序中-->单元测试
if ([Test sumWithPartOne:88 partTwo:9] == 97) {
NSLog(@"逻辑代码正确");
}
command + R运行,看到控制台输出
2017-05-15 16:27:30.554 UnitTestDemo[76562:13431407] 两数之和: 97
2017-05-15 16:27:30.554 UnitTestDemo[76562:13431407] 逻辑代码正确
可知写的代码成功运行结果正确,但这样测试代码在我们的主程序中。
也可以这样做,单元测试:
使用Xcode创建应用的时候:
可以勾选Include Unit Tests,这样创建的应用就包含单元测试。但如果创建时未勾选它,也可以在应用中新建它。
首先在单元测试的类中引入Test,在testExample方法中写测试代码或者删掉它们,自己新写个方法写测试代码。
- (void)test
{
//测试 点击左侧菱形即可
//运行正常: 菱形显示为绿色
//运行不正常: 菱形显示为红色
//最顶部的菱形按钮 用于多个测试代码需要运行时 可以点击顶部按钮 全部运行
//XCTAssert: 断言
XCTAssert([Test sumWithPartOne:88 partTwo:9] == 97, @"方法错误");
// //1.开发功能逻辑代码
// //2.可以将测试代码 写在主程序中-->单元测试
// if ([Test sumWithPartOne:88 partTwo:9] == 97) {
// NSLog(@"逻辑代码正确");
// }
}
运行正常:
运行不正常: