【发布时间】:2015-03-15 10:29:41
【问题描述】:
我正在使用 rails 4 和 rspec 与 capybara 进行测试。 我想在我的测试环境中禁用 css。我怎样才能做到这一点?谁能帮帮我。
【问题讨论】:
标签: capybara-webkit rspec3 ruby-on-rails-4.2
我正在使用 rails 4 和 rspec 与 capybara 进行测试。 我想在我的测试环境中禁用 css。我怎样才能做到这一点?谁能帮帮我。
【问题讨论】:
标签: capybara-webkit rspec3 ruby-on-rails-4.2
最简单的方法 - 跳过在 /app/views/layouts/application.html.erb 中加载的 CSS 文件以进行测试环境。:
<% unless Rails.env.test? %>
<%= stylesheet_link_tag "application", :media => "all" %>
<% end %>
【讨论】:
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
【讨论】: