是否可以在Capybara / Rspec集成测试中调用GET?

时间:2015-03-19 23:55:09

标签: ruby-on-rails ruby rspec capybara

我有一个Rails 4.2应用程序....我正在添加content compression via this thoughtbot blog post,但是我收到一个错误,例如:

undefined method `get' for #<RSpec::ExampleGroups::Compression:0x00000009aa4cc8>

仔细研究水豚文档,似乎你不应该使用get。知道如何在Rails 4中测试下面的内容吗?

# spec/integration/compression_spec.rb
require 'spec_helper'

feature 'Compression' do
  scenario "a visitor has a browser that supports compression" do
    ['deflate','gzip', 'deflate,gzip','gzip,deflate'].each do|compression_method|
      get root_path, {}, {'HTTP_ACCEPT_ENCODING' => compression_method }
      response.headers['Content-Encoding'].should be
    end
  end

  scenario "a visitor's browser does not support compression" do
    get root_path
    response.headers['Content-Encoding'].should_not be
  end
end

1 个答案:

答案 0 :(得分:1)

在水豚测试中,您会使用visit而非getas described here),但该答案实际上对您没有帮助,因为您上面所写的测试不是集成测试,这是一个控制器测试。

将其移至spec/controllers并使用特定于控制器的帮助程序describe / context / it等为您的控制器构建测试。您可以设置标题并执行您正在显示的代码中执行的各种检查。