ios专题 - OCUnit

心已入冬 提交于 2020-03-25 13:49:19

OCUnit是集成在Xcode开发环境的单元测试框架;OCUnit运行必须包含SenTestingKit.framework这个库

针对需要测试的类,每个类写出自己的TestCase,独立组织一个文件。每个测试类都是继承自SenTestCase类,这里有3个重要的方法需要介绍:

1. -(void)setUp: 每个test方法执行前调用,用于类的创建,一些变量的初始化等

2. -(void)tearDown:每个test方法执行后调用

3. -(void)testXXX:这个是真正运行的测试方法,命名就是不带参数,以test开始。

    这里的每个testXXX方法可以在Scheme里面看到,并可以设置是否测试这个方法

    开发者的主要工作是自己实现这些无返回值的testXXX方法,一般框架会提供大量的断言方法,如果还是觉得不够丰富,可以使用第三方的库来进行扩充,比如:OCHamcrest。

OCUnit断言介绍:

1.无条件失败(Unconditional Failure)

STFail
让测试用例失败

STFail(failure_description, ...)
参数
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

 

2.相等测试(Equality Tests)

STAssertEqualObjects

当两个对象不同时,测试失败
STAssertEqualObjects(object_1, object_2, failure_description, ...)
参数
object_1
    一个对象
object_2
    一个对象

failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

说明:当 [object_1 isEqualTo:object_2] 为false时,测试失败


STAssertEquals

当两个值不等的时候测试失败。
STAssertEquals(value_1, value_2, failure_description, ...)

参数
value_1
                一个数值,结构体,或联合体。
value_2
                一个数值,结构体,或联合体。
failure_description
                指定你错误消息的格式化字符串,可以为nil
...
                (可选)以逗号隔开的替换到failure_description的参数列表
                
说明:当value_1 不等于value_2的时候测试失败。



STAssertEqualsWithAccuracy

当两个值的差别大于给定值时,测试失败
STAssertEqualsWithAccuracy(value_1, value_2, accuracy, failure_description, ...)

参数
value_1
                一个整型或浮点值。
value_2
                一个整型或浮点值。
accuracy
                一个整型或浮点值。
failure_description
                指定你错误消息的格式化字符串,可以为nil
...
                (可选)以逗号隔开的替换到failure_description的参数列表
说明:当value_1和value_2之间相差大于accuracy时,测试失败。

 

3.空值测试(Nil Tests)


STAssertNil

Fails the test case when a given expression is not nil.
如果给定的表达式不是nil,测试失败。
STAssertNil(expression, failure_description, ...)

参数
expression
                要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表



STAssertNotNil

Fails the test case when a given expression is nil.
当表达式为nil时,测试失败。
STAssertNotNil(expression, failure_description, ...)

参数
expression
                要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

 

4.布尔测试(Boolean Tests)


STAssertTrue

如果给定表达式为false,测试失败。
STAssertTrue(expression, failure_description, ...)


参数
expression
                要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表


STAssertFalse

如果给定表达式为true,测试失败。
STAssertFalse(expression, failure_description, ...)

参数
expression
                要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

 

5.异常测试(Exception Tests)


STAssertThrows

当表达式不抛异常时,测试失败
STAssertThrows(expression, failure_description, ...)

参数
expression
                要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表


STAssertThrowsSpecific

当表达式不能抛出特定类的异常时,测试失败。
STAssertThrowsSpecific(expression, exception_class, failure_description, ...)

参数
expression
                要测试的表达式。
exception_class
    异常类
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

说明:当expression不会抛出exception_class的异常时,测试失败。


STAssertThrowsSpecificNamed

当表达式不能抛出特定类指定名称的异常时,测试失败。
STAssertThrowsSpecificNamed(expression, exception_class, exception_name, failure_description, ...)

参数
expression
                要测试的表达式。
exception_class
    异常类
exception_name
    异常名字的字符串
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

说明:当expression不能抛出exception_class类中的名为exception_name的异常时,测试失败。


STAssertNoThrow

如果表达式抛异常,测试失败。
STAssertNoThrow(expression, failure_description, ...)

参数
expression
    要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表


STAssertNoThrowSpecific

当表达式抛出特定类的异常时,测试失败。
STAssertNoThrowSpecific(expression, exception_class, failure_description, ...)

参数
expression
                要测试的表达式。
exception_class
    异常类
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

说明:当expression抛出exception_class的异常时,测试失败。


STAssertNoThrowSpecificNamed

当表达式抛出特定类指定名称的异常时,测试失败。
STAssertNoThrowSpecificNamed(expression, exception_class, exception_name, failure_description, ...)

参数
expression
                要测试的表达式。
exception_class
    异常类
exception_name
    异常名字的字符串
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表

说明:当expression抛出exception_class类中的名为exception_name的异常时,测试失败。


STAssertTrueNoThrow

当表达式为false或者抛异常时,测试失败。
STAssertTrueNoThrow(expression, failure_description, ...)

参数
expression
    要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil
...
    (可选)以逗号隔开的替换到failure_description的参数列表


STAssertFalseNoThrow

当表达式为true或者抛异常时,测试失败。
STAssertFalseNoThrow(expression, failure_description, ...)

参数
expression
    要测试的表达式。
failure_description
    指定你错误消息的格式化字符串,可以为nil

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!