iOS 的单元测试代码我们使用 Xcode 自带的 XCTest,XCTest 可以从逻辑和性能两个方向进行测试,下面我们来一起看下如何实现。
逻辑测试
1.为工程添加一个单元测试的 Target(已经有的可以略过这一步)

2.为单元测试 Target 添加测试文件

3.编写测试逻辑
1 | //每个用例方法执行前会执行的方法,为用例准备环境 |
4.执行单元测试

5.查看测试结果

异步测试
针对异步执行的代码我们需要这样写
1 | - (void)setUp { |
另外 waitForExpectations:timeout:方法可以等待多个特定的 XCTestExpectation
1 | - (void)setUp { |
笔者推荐使用 waitForExpectationsWithTimeout:handler:方法。
性能测试
需要了解一段代码执行了多长时间,可以采用如下方法
1 | - (void)testPerformanceExample { |
这个方法 measureBlock 在执行时会执行 10 次,并且在执行完时会告诉你执行 10 次的时间。第一次执行 testPerformanceExample 完时会提示你输入一个该方法执行时间的参考值(baseline)作为参考。同时你也可以点击数字查看每次具体执行的结果,如下图:

查看单测覆盖率
首先在 Edit scheme -> Test -> Options 下勾选 Code Coverage

然后运行一次单元测试,在 report navigator 上选择刚刚单测的 Coverage 选项,就可以看到单元测试覆盖率了

常用的 XCTAssert 断言
1 | XCTFail(...) 强制失败断言 |
其他
在编写单元测试时如果遇到问题可以参考 iOS 单元测试-各种问题