为什么我们使用KIF-Quick进行用户界面测试

作者:软件工程师Paul Zabelin

在DoorDash,我们的工程团队正在不断开发新代码,以改善iOS上的用户界面(UI)。 最近,我们开发了自己独特的测试系统,该系统将名为“保持功能正常”的框架与行为驱动的开发框架Quick结合在一起。 我们已经看到,我们的KIF-Quick系统提供了最好的测试结果,并自豪地宣布它是一个开源项目,因此我们鼓励其他人看看并尝试一下。

为了深入研究,出于多种原因,我们选择使用“保持功能正常”或KIF进行测试,但其中一个与众不同-可靠性。 我们需要能够相信测试是100%准确的,每次测试通过或失败。 KIF还可以快速,轻松地进行测试,这是该框架的主要吸引力。 关键是测试不会花费太多时间来运行,同时仍能提供可靠的结果。

同时,我们还使用Swift开发和编写单元测试,并使用Quick和Nimble框架提供帮助。 对于更多上下文,Quick是受RSpec启发的Swift行为驱动开发(BDD)框架。 我们之所以选择使用Quick,是因为它的组织性使其更易于阅读,这有助于简化测试代码。

使用Quick进行我们的iOS UI测试可以为工程师提供更多具有嵌套上下文的可读性规范。 另外,当在开发之外共享使用我们领域特定语言的单元测试时,我们的UI测试甚至可以从BDD样式中受益。 这就是为什么在DoorDash中我们选择将两者结合使用的原因。 KIF-Quick的易用性和可靠的结果为我们提供了UI测试的最佳体验和结果-毕竟,他们说“您的代码仅与您的测试一样好”

例子

下面比较两个用于应用登录的测试示例。 第一个示例使用KIF-Quick,另一个示例显示常规XCTest。

在Swift中使用Quick BDD语法的KIF Spec

Objective-C中的KIF测试

从上面的两个示例中可以看到,第一个示例(使用KIF-Quick)提供了更具可读性的语法,这在组织多个上下文时特别有用。

如果您想了解更多信息,请在此处查看KIF-Quick,希望您发现它与我们的测试一样有益。