在Rspec的测试环境中禁用css

时间:2015-02-25 16:13:38

标签: capybara-webkit rspec3 ruby-on-rails-4.2

我正在使用rails 4和rspec与capybara进行测试。 我想在我的测试环境中禁用css。我怎样才能做到这一点?任何人都可以帮助我。

2 个答案:

答案 0 :(得分:2)

最简单的方法 - 跳过/app/views/layouts/application.html.erb中加载测试环境的CSS文件:

<% unless Rails.env.test? %>
  <%= stylesheet_link_tag    "application", :media => "all" %>
<% end %>

答案 1 :(得分:0)

Capybara允许您将特定URL列入黑名单。您可以使用此功能来阻止加载CSS文件。例如,如果您的CSS是从/assets/application.css加载的:

RSpec.configure do |config|
  config.before(:each, js: true) do
    page.driver.browser.url_blacklist = [
      "http://127.0.0.1:#{page.server.port}/assets/application.css"
    ]
  end
end

您可以通过启用Capybara的调试来确认加载了哪些资产。要启用调试,只需将驱动程序设置为:webkit_debug而不是:webkit

Capybara.javascript_driver = :webkit_debug