turbolinks是否有办法在rspec / Capybara中运行?

时间:2014-07-29 18:27:06

标签: rspec capybara turbolinks

我遇到了一个问题,我需要补偿由于Turbolinks而被叫两次的节目。我希望能够在我的测试中发现这个和类似的问题,但由于这个问题在测试中不可重现,我假设默认情况下不启用Turbolinks。有人可以确认这是否属实,并分享是否可以启用它的信息?

2 个答案:

答案 0 :(得分:1)

Turbolinks需要JavaScript,默认的Capybara浏览器(rack_test)不支持JavaScript。但您可以设置备用Web浏览器,并通过传递js: true

来标记需要JavaScript的测试
describe "My feature"
  it "Can test the front page without JavaScript" do
    # Non-JS test here
  end

  it "Tests a JS-requiring feature", js: true do
    # JS tests here
  end
end

Capybara然后将使用Capybara:javascript_driver中配置的驱动程序来运行该测试。默认情况下,这是Selenium,但您可能希望将Capybara-webkit视为(可能)更容易设置的替代方案。

Capybara documentation has more details about alternative JavaScript-supporting drivers

答案 1 :(得分:0)

Turbolinks 5 beta目前还没有评估内联javascript,但是会发布5.0版本。我不确定您的代码是否内联。除此之外,我所知道的任何具体内容都不应该阻止Capybara使用turbolinks。