前言
最近一直像要进阶新的知识,才知道一些大厂很注重单元测试。其实我一直不明白单元测试的意义跟价格,跟我一样疑惑吗?想要屌丝逆袭成高级软件工程师吗?Follow me~ 需要帮助请按command +shift + 0
在测试方法中主要知道setup 是初始化的地方,teardown 是结束清理的地方。每次用例方法执行,都会执行这两个方法。每次测试用户的方法都是test开头。并且无返回值。最后在方法中使用断言进行判断,断言的使用方法是STASSert***** 。最后点击小菱形运行。大家没事也可以研究下OCMock
1.1常见的几种单元测试方法有逻辑测试+异步测试+性能测试+UI测试;基础设置如下
1.2 以下使用伪代码实现了异步测试
首选将需要测试的方法暴露出来,写测试用例的时候,需要继承XCTestCase。
1.3性能测试
单元测试主要依赖代码测试,测试期间遇到问题是使用断言处理的。以下Xcode常用的断言
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语言标量、结构体或联合体时使用);
XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...)判断相等,(double或float类型)提供一个误差范围,当在误差范围(+/-accuracy)以内相等时通过测试;
XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) 判断不等,(double或float类型)提供一个误差范围,当在误差范围以内不等时通过测试;
XCTAssertThrows(expression, format...)异常测试,当expression发生异常时通过;反之不通过;(很变态)
XCTAssertThrowsSpecific(expression, specificException, format...) 异常测试,当expression发生specificException异常时通过;反之发生其他异常或不发生异常均不通过;
XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression发生具体异常、具体异常名称的异常时通过测试,反之不通过;
XCTAssertNoThrow(expression, format…)异常测试,当expression没有发生异常时通过测试;
XCTAssertNoThrowSpecific(expression, specificException, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过;
XCTAssertNoThrowSpecificNamed(expression, specificException, exception_name, format...)异常测试,当expression没有发生具体异常、具体异常名称的异常时通过测试,反之不通过