关于水豚的快速提示

TLDR;

  • 系统测试基础
  • 水豚如何工作?
  • 要做
  • 不要
  • 有用的文章

本文总结了最有用的技巧和概念,这些技巧和概念对我使用Capybara进行系统测试有帮助。 它并不是要成为完整而透彻的指南,而是要快速概述使测试变得更加愉快的实践。

什么是系统测试

系统测试是开发人员实施的一系列测试的一部分,以确保其应用程序正常运行。 我们将特别关注的测试是系统测试,它测试整个应用程序的集成。 本质上,该测试将模拟用户浏览该应用程序。 这样可以确保应用程序的所有部分(视图,模型,控制器,助手等)都可以按最终用户体验的预期正常工作。

系统测试被视为黑盒测试,因为它是从无法访问或不了解软件内部工作的用户的外部角度出发。 白盒测试正在测试软件的内部工作,例如单元测试或集成测试。

什么是水豚及其运作方式

Capybara是Ruby on Rails开发人员用来帮助编写系统测试的工具箱的一部分。 它是一个红宝石库,可以帮助模拟用户浏览Web应用程序。 它与Web驱动程序结合使用,Web驱动程序是一种语言无关的界面,允许开发人员编写可以控制或操纵DOM中元素的程序。

Capybara文档的主要优点包括

  • 无需为Rails和Rack应用程序进行设置。 开箱即用。
  • 直观的API,模仿实际用户会使用的语言。
  • 将测试运行的后端从快速无头模式切换到实际的浏览器,而无需更改测试。
  • 强大的同步功能意味着您无需手动等待异步过程完成。

Capybara启动浏览器,它可以是真正的浏览器,例如带有硒Web驱动程序的chrome浏览器,也可以是无头浏览器。 然后,当您的测试通过应用程序运行时,大多数Capybara代码库都在努力确保异步调用不会破坏您的测试。