在我的Rails 3.2项目中,我偶尔会从Javascript向http://jsonip.com
发送一个http请求。但是,当使用@javascript
标记运行Cucumber时,请求会非常频繁地发送。这显然是非常不可取的,我想提出这样的要求。现在,我以为可以将stub_request
中的webmock
用于此操作,如下所示:
Before do
stub_request(:any, /.*jsonip.*/).to_return(:body => '{"ip":"24.104.73.2","about":"/about"}')
end
但是即使这样做,
jsonip
仍会从Javascript中调用。因此,我发现webmock
实际上并不对Ajax请求进行 stub 处理(至少与上面的stub_request
语句无关)。在 cucumber / capybara / Selenium 设置中对Ajax请求进行 stub 处理的正确方法是什么?
最佳答案
唯一的方法是更改url或禁用请求,具体取决于运行的环境应用程序。
您无法从测试端处理此请求,因为该请求是由浏览器而不是您的应用程序发出的。
另外,作为CI服务器的临时解决方案或解决方案,您可以在hosts文件中禁用此url。
关于ruby-on-rails-3 - 在 cucumber / capybara / Selenium 中 stub Ajax请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9717601/