如何使用Cucumber/Capybara测试Rails 3.1/HTML5必填字段?

7

当必填字段提交为空时,如何检查出现在上方的“请填写此字段”消息?

目前我的黄瓜场景似乎完全忽略了空字段,成功提交表单。

(我正在验证字段的存在性,并且在手动提交时,表单确实会显示该消息)


1
你使用的是哪个Capybara驱动程序?(例如:mechanize,selenium) - Andy Waite
只是确认一下,该字段上是否有 validates_presence_of 校验,并且在提交时仍然被接受? - Tonys
@AndyWaite 默认情况下,从刚才查看的capybara README中看来,它似乎是:rack_test。并且它不支持JavaScript,这让我感到意外。因此答案就是使用js驱动程序? - oliverbarnes
@Tonys,有这个问题,当手动提交时,消息会出现。 - oliverbarnes
据我所知,HTML5并不依赖于JavaScript。我认为问题只是rack-test尚未理解HTML5。然而,如果手动提交时出现消息,但通过Cucumber提交时没有出现,则我怀疑您的测试中存在错误。 - Andy Waite
1
尝试使用其他驱动程序,如Mechanize或Selentium,看看会发生什么。 - Andy Waite
1个回答

0
如果这是一个基于JavaScript的弹窗,您需要使用类似于:selenium驱动程序的东西。
# Set selenium as the default driver for javascript
Capybara.javascript_driver = :selenium

# Register chrome browser for the :selenium driver
Capybara.register_driver :selenium do |app|
  Capybara::Selenium::Driver.new(app, :browser => :chrome)
end

通过使用@javascript标记您的场景,只需使用像Then I should see "Please fill out this field"这样的步骤即可。

我有一个要点总结,介绍如何在开发和持续集成中使用:selenium、:capybara-webkit和headless gem。它可能对您的设置有所帮助,但也可能超出了您目前的需求。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接