【译】iOS 单元测试和 UI 测试入门教程
iOS Unit Testing and UI Testing Tutorial 编写测试并不迷人 (glamorous),但是既然测试能让你闪闪发光 (sparkling) 的应用程序避免变成 (from turning into) 一堆乱七八糟的垃圾,那么说明测试是必要的。如果你正在阅读这篇教程,那么你已经知道你 应该 为代码和 UI 编写测试,但是你可能不知道如何做。 也许你已经有一个 “可以运行” 的应用,但想测试你正在进行的扩展应用的更改。也许你已经编写了一些测试,但不确定它们是否是 正确 的测试。或者,你已经开始开发一个新应用,想要边开发边测试。 这篇教程将告诉你如何: 使用 Xcode 的测试导航器来测试应用的模型和异步方法 通过使用存根 (stubs) 和模拟对象 (mocks) 模拟与库或系统对象的交互 测试 UI 和性能 使用代码覆盖率工具 在此过程中,你将学到一些测试高手常用的专业术语。 开始 首先,下载教程素材。它包含一个基于 UIKit Apprentice 中的示例应用的 BullsEye 项目。这是一个简单的运气和机会游戏。游戏逻辑在 BullsEyeGame 类中,你将在本教程中对其进行测试。 测试什么 在编写任何测试之前,重要的是了解基础知识。你需要测试什么? 如果你的目标是扩展现有应用,你应该首先为计划更改的任何组件编写测试。 一般来说,测试应该覆盖: 核心功能:模型类和方法及其与控制器的交互 最常见的 UI 工作流 边界条件 Bug 修复 测试的最佳实践 首字母缩写 FIRST 描述了有效单元测试的一套简明标准。这些标准是: Fast:测试应该快速运行。 Independent/Isolated:测试之间不应共享状态。 Repeatable:每次运行测试时,都应获得相同的结果。外部数据提供者或并发问题可能导致间歇性失败。 Self-validating:测试应完全自动化。输出应该是"通过"或"失败",而不是依赖程序员对日志文件的解释。 Timely:理想情况下,你应该在编写生产代码之前编写测试它们的测试。这被称为测试驱动开发。 遵循 FIRST 原则将使你的测试保持清晰有用,而不会成为应用开发的障碍。 ...