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

Har*_*rel 5 rspec ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)

然而,在我的控制器中撬一下,我发现那request.headers['REMOTE_HOST']127.0.0.1

Har*_*rel 7

我通过存根解决了这个问题ActionDispatch::Request#remote_ip

allow_any_instance_of(ActionDispatch::Request).to receive(:remote_ip) { '1.2.3.4' }
Run Code Online (Sandbox Code Playgroud)

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

如果可能的话,我更愿意改变实际的请求。