单元测试常用的宏和测试方法
XCTFail(...)
任何尝试都会测试失败,...是输出的提示文字。(后面都是这样)
XCTAssertNil(expression, ...)
expression为空时通过,否则测试失败。
expression接受id类型的参数。
XCTAssertNotNil(expression, ...)
expression不为空时通过,否则测试失败。
expression接受id类型的参数。
XCTAssert(expression, ...)
expression为true时通过,否则测试失败。
expression接受boolean类型的参数。
XCTAssertTrue(expression, ...)
expression为true时通过,否则测试失败。
expression接受boolean类型的参数。
XCTAssertFalse(expression, ...)
expression为false时通过,否则测试失败。
expression接受boolean类型的参数。
XCTAssertEqualObjects(expression1, expression2, ...)
expression1和expression1地址相同时通过,否则测试失败。
expression接受id类型的参数。
XCTAssertNotEqualObjects(expression1, expression2, ...)
expression1和expression1地址不相同时通过,否则测试失败。
expression接受id类型的参数。
XCTAssertEqual(expression1, expression2, ...)
expression1和expression1相等时通过,否则测试失败。
expression接受基本类型的参数(数值、结构体之类的)。
XCTAssertNotEqual(expression1, expression2, ...)
expression1和expression1不相等时通过,否则测试失败。
expression接受基本类型的参数。
XCTAssertEqualWithAccuracy(expression1, expression2, accuracy, ...)
expression1和expression2之间的任何值都大于accuracy时,测试失败。
expression1、expression2、accuracy都为基本类型。
XCTAssertNotEqualWithAccuracy(expression1, expression2, accuracy, ...)
expression1和expression2之间的任何值都小于等于accuracy时,测试失败。
expression1、expression2、accuracy都为基本类型。
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没抛指定类的异常,测试失败。
expression为一个表达式
exception_class为一个指定类
XCTAssertThrowsSpecificNamed(expression, exception_class, exception_name, ...)
expression没抛指定类、指定名字的异常,测试失败。
expression为一个表达式
exception_class为一个指定类
exception_name为一个指定名字
XCTAssertNoThrow(expression, ...)
expression抛出异常时,测试失败。
expression为一个表达式
XCTAssertNoThrowSpecific(expression, exception_class, ...)
expression抛出指定类的异常,测试失败。
expression为一个表达式
XCTAssertNoThrowSpecificNamed(expression, exception_class, exception_name, ...)
expression抛出指定类、指定名字的异常,测试失败。
expression为一个表达式
exception_class为一个指定类
exception_name为一个指定名字
异步测试方法(定时器测试)
- (void)testTimerOne02{
XCTestExpectation *exception01 = [self expectationWithDescription:@"开始测试定时器"];
self.timer01Exception = exception01;
[[DYBoxTimer shareInstance] addSubscriberTimerWithTimeInterval:3 target:self selector:@selector(sendLocation01) timerSubscriberName:@"timer5" isRepeat:YES];
////等待6s期待预期完成,10s之内完成任务就认为是正常的
[self waitForExpectationsWithTimeout:3.1 handler:nil];
}
- (void)sendLocation1{
[self.timer1Exception fulfill];
}
作者开发经验总结的文章推荐,持续更新学习心得笔记
五星推荐 Runtime 10种用法(没有比这更全的了)
五星推荐 成为iOS顶尖高手,你必须来这里(这里有最好的开源项目和文章)
五星推荐 iOS逆向Reveal查看任意app 的界面
五星推荐手把手教你使用python自动打包上传应用分发
JSPatch (实时修复App Store bug)学习(一)
iOS 高级工程师是怎么进阶的(补充版20+点)
扩大按钮(UIButton)点击范围(随意方向扩展哦)
最简单的免证书真机调试(原创)
通过分析微信app,学学如何使用@2x,@3x图片
TableView之MVVM与MVC之对比
使用MVVM减少控制器代码实战(减少56%)
ReactiveCocoa添加cocoapods 配置图文教程及坑总结