iOS单元测试和UI测试全面解析(2)

发表于:2017-03-31来源:51CTO作者:朱先忠点击数: 标签:单元测试iOS
Fast(快速)︰测试的运行速度应该很快,这样一来人们就不会介意运行它们。 Independent/Isolated(独立/分离)︰一个测试不应因另一个测试而进行安装或拆卸。

  • Fast(快速)︰测试的运行速度应该很快,这样一来人们就不会介意运行它们。
  • Independent/Isolated(独立/分离)︰一个测试不应因另一个测试而进行安装或拆卸。
  • Repeatable(可重复)︰每次运行测试时,您应该获得相同的结果。值得注意的是,外部数据提供者和并发问题可能会导致程序的间歇性故障。
  • Self-validating(自我验证)︰测试应该能够完全自动化进行;输出应该要么是“pass”(即“通过”)要么是“fail”(即“失败”),而不是提供给程序员一个解释性的日志文件。
  • Timely(及时)︰理想情况下,应该只是在你编写生产代码之前编写测试。

遵循上述FIRST原则进行测试能够确保您的测试明确而有用,而不致使之成为您的应用程序中的路障。

开始

首先,请从网址https://koenig-media.raywenderlich.com/uploads/2016/12/Starters.zip下载、解压缩、打开并观察本文提供的两个初始示例工程BullsEye和HalfTunes。

注意,工程BullsEye基于文章https://www.raywenderlich.com/store/ios-apprentice中提供的一个样本程序。我已经把游戏逻辑提取到一个BullsEyeGame类中,并相应地添加了另一种游戏风格。

在游戏的右下角提供了一个分段的控制器组件,供用户选择游戏风格︰或者是Slide类型,允许玩家移动滑块组件以尽可能接近目标值;或者是Type类型,允许玩家猜测滑块到达的位置。控件相应的动作代码中还会将用户选择的游戏风格存储为该用户的默认设置。

另一个示例工程HalfTunes则来自于我们的另一个教程NSURLSession(https://www.raywenderlich.com/110458/nsurlsession-tutorial-getting-started),现已被更新到Swift 3版本。用户可以使用iTunes API查询歌曲,然后下载并播放对应的歌曲片段。

下面,让我们正式开始测试!

Xcode中的单元测试

原文转自:http://mobile.51cto.com/iphone-535758.htm