OC单元测试
Posted pengyuan_D
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OC单元测试相关的知识,希望对你有一定的参考价值。
断言测试
下面一共18个断言(SDK中也是18个,其含义转自ios UnitTest 学习笔记,真心佩服原文的博主,部分宏小弟已经测试过):
- 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语言标量、结构体或联合体时使用);
- XCTAssertEqualWithAccura
cy(a1, a2, accuracy, format...)判断相等,(double或float类型)提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试; - XCTAssertNotEqualWithAcc
uracy(a1, a2, accuracy, format...) 判断不等,(double或float类型)提供一个误差范围,当在误差范围以内不等时通过测试; - XCTAssertThrows(expression, format...)异常测试,当expression发生异常时通过;反之不通过;(很变态)
- XCTAssertThrowsSpecific(expression, specificException, format...) 异常测试,当expression发生specificException异常时通过;反之发生其他异常或不发生异常均不通过;
- XCTAssertThrowsSpecificN
amed(expression, specificException, exception_name, format...)异常测试,当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过; - XCTAssertNoThrow(expression, format…)异常测试,当expression没有发生异常时通过测试;
- XCTAssertNoThrowSpecific
(expression, specificException, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过; - XCTAssertNoThrowSpecific
Named(expression, specificException, exception_name, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过
特别注意下XCTAssertEqualObjects和XCTAssertEqual。
XCTAssertEqualObjects(a1, a2, format...)的判断条件是[a1 isEqual:a2]是否返回一个YES。
XCTAssertEqual(a1, a2, format...)的判断条件是a1 == a2是否返回一个YES。
对于后者,如果a1和a2都是基本数据类型变量,那么只有a1 == a2才会返回YES。
以上是关于OC单元测试的主要内容,如果未能解决你的问题,请参考以下文章
在 MS C# 单元测试中,如何断言发生了 ArgumentException?