在 Cucumber / Capybara / Selenium 中存根 Ajax 请求?
·
问题:在 Cucumber / Capybara / Selenium 中存根 Ajax 请求?
在我的 Rails 3.2 项目中,我偶尔会从 Javascript 向http://jsonip.com发送一个 http 请求。但是当使用@javascript标签运行 Cucumber 时,请求会非常频繁地发送。这显然是非常不可取的,我想存根这样的请求。现在,我想我可以使用webmock中的stub_request来实现这一点,如下所示:
Before do
stub_request(:any, /.*jsonip.*/).to_return(:body => '{"ip":"24.104.73.2","about":"/about"}')
end
但即使有了这个,jsonip也会从 Javascript 中调用。所以我发现webmock实际上并没有存根 Ajax 请求(至少不是上面的stub_request语句)。
在 Cucumber / Capybara / Selenium 设置中存根 Ajax 请求的正确方法是什么?
解答
唯一的方法是根据运行的环境更改 url 或禁用请求。
你不能从测试端存根这个请求,因为这个请求是由_browser_而不是你的应用程序发出的。
此外,作为 CI 服务器的临时解决方案或解决方案,您可以在 hosts 文件中禁用此 url。
更多推荐

所有评论(0)