利用测试确保应用质量
1. 3 - As 方法中的断言步骤
在 3 - As 测试方法中,最后一个 A 是断言(assert)。在断言步骤中,要确保正在测试的对象状态符合预期。在单个测试中,执行(act)和断言可以多次使用。例如,可能需要断言执行一次操作会使对象处于特定状态,再次执行则使对象处于另一个状态,或者对象状态保持不变。
和其他两个步骤一样,如果在测试中要断言很多内容,或者反复进行执行和断言操作,那么这个测试可能范围太广。虽然这并不总是能避免,但包含大量执行和断言操作的长测试通常意味着一次测试的内容过多。
2. 使用 XCTest 设置测试套件
接下来将为一个新应用 MovieTrivia 设置测试套件。项目的基本设置包含一些视图控制器、一个 Info.plist 文件,以及项目中常见的其他文件,还有一个名为 TriviaQuestions.json 的 JSON 文件,该文件包含一些虚拟问题,可以通过取消 LoadTriviaViewController.swift 中部分代码的注释来加载这些问题。
默认情况下,LoadTriviaViewController.swift 尝试从一个不存在的 Web 服务器加载问题,这是为了演示如何设置此类项目。由于目前没有可用的 Web 服务器,可以用 JSON 文件替换虚拟的网络代码来测试应用。
在编写测试或进行任何优化之前,必须向项目中添加一个测试目标。添加测试目标的方式与之前添加扩展类似,唯一的区别是要选择不同类型的目标,添加测试目标时应选择 iOS Unit Testing Bundle 模板。
添加目标后,Xcode 会在项目中添加一个新文件