如何在Capybara功能规范中设置请求IP?

时间:2017-07-13 15:05:49

标签: ruby-on-rails rspec capybara

我在我的Rails 5.1应用程序上使用RSpec和Capybara作为我的功能规格。我想将单个规范的请求IP伪造为'1.2.3.4'。

我和Poltergeist一起试过以下......

before do
  page.driver.add_headers 'REMOTE_HOST' => '1.2.3.4'
end

但是,在我的控制器中放置一个撬,我发现request.headers['REMOTE_HOST']127.0.0.1

1 个答案:

答案 0 :(得分:0)

我通过短信ActionDispatch::Request#remote_ip

解决了这个问题
allow_any_instance_of(ActionDispatch::Request).to receive(:remote_ip) { '1.2.3.4' }

http://guides.rubyonrails.org/action_controller_overview.html#the-request-object

如果可能,我宁愿改变实际的请求。