TurboLinks能否在rspec/Capybara中运行?

4

我遇到了一个问题,由于 Turbolinks 的原因,我需要补偿 show 被调用两次。我希望能在测试中捕捉到这个问题和类似的问题,但是由于这个问题在测试中无法重现,所以我认为默认情况下 Turbolinks 是未启用状态。请问是否有人能够确认这一点,并分享有关是否可以启用它的信息?

2个回答

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文档有关于可供选择的支持JavaScript的驱动程序的更多细节。

我正在使用selenium-webdriver,我已经尝试过了,但是现在再次设置js:true。我的网站的设置是从主页链接到某种类型模型的显示页面。我在该模型控制器的show方法的最开始处放置了一个打印语句,当我自己点击链接时,我看到两个调用show。但是当我运行规范并单击链接时,只有一个调用show。因此,我认为这意味着turbolinks没有运行? - uhezay
你也可以在服务级别定义这个。 - MrMesees

0

Turbolinks 5 beta目前不会评估内联JavaScript,但在5.0版本中将会。我不确定您的代码是否为内联代码。除此之外,我不知道还有什么特定的问题会阻止Capybara与turbolinks一起使用。


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