1.在Xcode 5中新建一个工程默认自带一个单元测试的文件夹,IDE自动生成了一个实现XCTestCase的.m文件,里面有一个失败测试(早期版本中实现的是SenTestCase,是苹果集成的第三方的,现在苹果建议使用新的XCTestCase)。
2.测试函数的要求是:1.必须无返回值;2.以test开头;
3.测试函数执行的顺序:以函数名中test后面的字符大小有关,比如-(void)test001XXX会先于-(void)test002XXX执行;
4.运行单元测试的快捷键:CMD + U;
------------------------------------断言--------------------------------------------
1、无条件报错
XCTFail(...)
生成一个失败的测试;
2、等价测试
XCTAssertEqualObjects(expression1, expression2, ...)
[expression1 isEqual:expression2值为TRUE时通过
expression1和expression1地址相同时通过,否则测试失败。
expression接受id类型的参数。
XCTAssertNotEqualObjects(expression1, expression2, ...)
[expression1 isEqual:expression2值为False时通过
expression1和expression1地址不相同时通过,否则测试失败。
expression接受id类型的参数。
XCTAssertEqual(expression1, expression2, ...)
expression1和expression1相等时通过,否则测试失败。
expression接受基本类型的参数(当a1和a2是 C语言标量、结构体或联合体时使用)。
XCTAssertNotEqual(expression1, expression2, ...)
expression1和expression1不相等时通过,否则测试失败。
expression接受基本类型的参数。
XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, ...)
提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试;
expression1和expression2之间的任何值都大于accuracy时,测试失败。
expression1、expression2、accuracy都为基本类型(double,float)。
XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, ...)
提供一个误差范围,当在误差范围(+/-accuracy)以内不相等时通过测试;
expression1和expression2之间的任何值都小于等于accuracy时,测试失败。
expression1、expression2、accuracy都为基本类型。
注意:
XCTAssertEqualObjects(a1, a2, format...)的判断条件是[a1 isEqual:a2]是否返回一个YES。
XCTAssertEqual(a1, a2, format...)的判断条件是a1 == a2是否返回一个YES。
对于后者,如果a1和a2都是基本数据类型变量,那么只有a1 == a2才会返回YES。
3、Nil(空)测试
XCTAssertNil(expression, ...)
为空判断
expression为空时通过,否则测试失败。
expression接受id类型的参数。
XCTAssertNotNil(expression, ...)
不为空判断
expression不为空时通过,否则测试失败。
expression接受id类型的参数。
4、Boolean测试
XCTAssert(expression, ...)
expression为true时通过,否则测试失败。
expression接受boolean类型的参数。
XCTAssertTrue(expression, ...)
expression为true时通过,否则测试失败。
expression接受boolean类型的参数。
XCTAssertFalse(expression, ...)
expression为false时通过,否则测试失败。
expression接受boolean类型的参数。
5、异常测试
XCTAssertGreaterThan(expression1, expression2, ...)
expression1 <= expression2时,测试失败。
expression为基本类型
XCTAssertGreaterThanOrEqual(expression1, expression2, ...)
expression1 < expression2时,测试失败。
expression为基本类型
XCTAssertLessThan(expression1, expression2, ...)
expression1 >= expression2时,测试失败。
expression为基本类型
XCTAssertLessThanOrEqual(expression1, expression2, ...)
expression1 > expression2时,测试失败。
expression为基本类型
XCTAssertThrows(expression, ...)
当expression发生异常时通过;反之不通过。
expression为一个表达式
XCTAssertThrowsSpecific(expression, exception_class, ...)
当expression发生exception_class异常时通过;
expression没抛指定类的异常,测试失败。
expression为一个表达式
exception_class为一个指定类
XCTAssertThrowsSpecificNamed(expression, exception_class, exception_name, ...)
当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过;
expression为一个表达式
exception_class为一个指定类
exception_name为一个指定名字
XCTAssertNoThrow(expression, ...)
当expression没有发生异常时通过测试;
expression为一个表达式
XCTAssertNoThrowSpecific(expression, exception_class, ...)
当expression没有发生exception_class异常时通过;
expression为一个表达式
XCTAssertNoThrowSpecificNamed(expression, exception_class, exception_name, ...)
当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过;
expression为一个表达式
exception_class为一个指定类
exception_name为一个指定名字
--------------------------------------------------------------------------------
http://www.cocoachina.com/ios/20140715/9144.html