ios专题 OCUnit===分析和总结.docx
ios专题-OCUnit
OCUnit是集成在Xcode开发环境的单元测试框架;OCUnit运行必须包含SenTestingKit.framework这个库;
针对需要测试的类,每个类写出自己的TestCase,独立组织一个文件。每个测试类都是继承自SenTestCase类,这里有3
个重要的方法需要介绍:
-(void)setUp:每个test方法执行前调用,用于类的创建,一些变量的初始化等
-(void)tearDown:每个test方法执行后调用
-(void)testXXX:这个是真正运行的测试方法,命名就是不带参数,以test开始。
这里的每个testXXX方法可以在Scheme里面看到,并可以设置是否测试这个方法
开发者的主要工作是自己实现这些无返回值的testXXX方法,一般框架会提供大量的断言方法,如果还是觉得不够丰富,可以使用第三方的库来进行扩充,比如:OCHamcrest。
OCUnit断言介绍:
无条件失败(UnconditionalFailure)
STFail
让测试用例失败
STFail(failure_description,...)
参数
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
相等测试(EqualityTests)
STAssertEqualObjects
当两个对象不同时,测试失败STAssertEqualObjects(object_1,object_2,failure_description,...)参数
object_1
一个对象
object_2
一个对象
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当[object_1isEqualTo:object_2]为false时,测试失败
STAssertEquals
当两个值不等的时候测试失败。
STAssertEquals(value_1,value_2,failure_description,...)
参数
value_1value_2
一个数值,结构体,或联合体。一个数值,结构体,或联合体。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当value_1不等于value_2的时候测试失败。
STAssertEqualsWithAccuracy
当两个值的差别大于给定值时,测试失败
STAssertEqualsWithAccuracy(value_1,value_2,accuracy,failure_description,...)
参数
value_1value_2accuracy
一个整型或浮点值。一个整型或浮点值。一个整型或浮点值。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
说明:当value_1和value_2之间相差大于accuracy时,测试失败。
空值测试(NilTests)
STAssertNil
Failsthetestcasewhenagivenexpressionisnotnil.
如果给定的表达式不是nil,测试失败。
STAssertNil(expression,failure_description,...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
STAssertNotNil
Failsthetestcasewhenagivenexpressionisnil.当表达式为nil时,测试失败。STAssertNotNil(expression,failure_description,...)
参数
expression
要测试的表达式。
failure_description
指定你错误消息的格式化字符串,可以为nil
...
(可选)以逗号隔开的替换到failure_description的参数列表
布