单元测试虽然很耗时间,但是对于项目整体而言却是很有必要的,大大的增加了项目的稳定性,特别是团队开发中。下面就谈谈OCUnit的简单使用:
在创建project的时候选中unitTest,在项目中会看到一个以项目名字+Teests而命名的测试类,该类里面有4个默认的方法,分别是- (void)setUp;- (void)tearDown;- (void)testExample;- (void)testPerformanceExample;
如果你想测试某个自己写的类的某个方法你可以在测试类中导入被测试的类的头文件,在测试类中调用被测试类的方法,关键是明白使用18个判断语义:
XCTFail(format…) //生成一个失败的测试;
XCTAssertNil(a1, format...) //为空判断,a1为空时通过,反之不通过;
XCTAssertNotNil(a1, format…) //不为空判断,a1不为空时通过,反之不通过;
XCTAssert(expression, format...) //当expression求值为TRUE时通过;
XCTAssertTrue(expression, format...) //当expression求值为TRUE时通过;
XCTAssertFalse(expression, format...) //当expression求值为False时通过;
XCTAssertEqualObjects(a1, a2, format...) //判断相等,[a1 isEqual:a2]值为TRUE时通过,其中一个不为空时,不通过;
XCTAssertNotEqualObjects(a1, a2, format...) //判断不等,[a1 isEqual:a2]值为False时通过;
XCTAssertEqual(a1, a2, format...) //判断相等(当a1和a2是 C语言标量、结构体或联合体时使用,实际测试发现NSString也可以);
XCTAssertNotEqual(a1, a2, format...) //判断不等(当a1和a2是 C语言标量、结构体或联合体时使用);
XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...) //判断相等,(double或float类型)提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试;
XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) //判断不等,(double或float类型)提供一个误差范围,当在误差范围以内不等时通过测试;
XCTAssertThrows(expression, format...) //异常测试,当expression发生异常时通过;反之不通过;
XCTAssertThrowsSpecific(expression, specificException, format...) //异常测试,当expression发生specificException异常时通过;反之发生其他异常或不发生异常均不通过;
XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...) //异常测试,当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过;
XCTAssertNoThrow(expression, format…) //异常测试,当expression没有发生异常时通过测试;
XCTAssertNoThrowSpecific(expression, specificException, format...) //异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过;
XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...) //异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过。具体使用方式截图如下:
有不明白的地方欢迎交流、给我留言。