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。
我通过存根解决了这个问题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
如果可能的话,我更愿意改变实际的请求。