如何redirect_to request.referrer进行Devise认证的控制器测试?

时间:2016-11-01 21:20:34

标签: ruby-on-rails ruby devise ruby-on-rails-5

我试图通过测试。控制器操作I测试以redirect_to request.referrer结束,并且可以在开发中使用。

在我的控制器测试中,我得到了:

  

ActionController :: ActionControllerError:无法重定向到nil!

以下是测试:

it 'should update a group' do
  put :update, id: group1.id, group: { name: 'foo' }
  expect(response).to be_success
end

我对同一个控制器进行了其他测试......

expect(response).to be_success

......如果他们通过呈现或重定向到非request.referer的内容而完成测试,则他们会通过。

我在该控制器中验证我的用户:

before_action :authenticate_user!

我的每个例子都以:

开头
before(:each) do
  sign_in user1
end

我像这样配置RSpec:

RSpec.configure do |config|
  config.include Devise::Test::ControllerHelpers, type: :controller
end

根据我的理解,如果我将标题哈希传递给我的测试请求(例如使用' HTTP_REFERER'),它将覆盖Devise中的那个。这里的解决方案是否正确设置了哈希?

我使用 rspec-rails (3.5.2),设计(4.2.0), rails (5.0。 0.1)

0 个答案:

没有答案