Rails表单测试:直接发布还是通过表单发布?

时间:2018-09-28 23:07:21

标签: ruby-on-rails testing ruby-on-rails-5

我看到的大多数Rails测试示例都直接发布到url。我最近发现,Rails支持使用“ fill_in”和“ click_on”来操纵表单元素。

我应该直接发布还是手动通过表单提交?手动填写表单似乎更加彻底,我问的原因是,我看到的所有示例都在发布直。显然,直接发布的工作可能要少一些,但是我很好奇我可能缺少的情况。有最佳实践吗?

1 个答案:

答案 0 :(得分:0)

您需要进行不同级别的测试,并需要权衡取舍。您所描述的是所谓的与浏览器的集成测试,它们具有这些特征

  • 非常黑的方框,因此您执行一系列步骤(登录,填写一些元素,单击提交)并声明情感(在屏幕上显示一条消息,表明已创建该消息,并且您看到了一些证明)。
  • 这些测试通常与速度较慢且可靠性较低(错误警报)相关,但可以让您高度确定某些东西在多个系统之间确实有效(rails应用服务器,浏览器中的javascript,数据库,缓存,其他服务)

与单元测试相反,后者更断言您的系统只有一小部分起作用。就像某个类上的某些方法正常工作一样。在您的示例中,这可能是断言您的模型能够接受某些设置属性并保存。这使您可以通过模拟/存根隔离您的依赖项。这些通常更快,更可靠,但它们使您无法确定一切都能按预期运行。

有一些变量,但是通常除非它是一个疯狂的高价值表单,否则我通常只测试模型验证以及使用可能导致问题的特定参数调用的任何表单对象。