在Cucumber/Capybara/Selenium中发现Ajax请求?

Pas*_*auf 9 tdd selenium cucumber capybara ruby-on-rails-3

在我的Rails 3.2项目中,我偶尔会http://jsonip.com从Javascript 发送一个http请求.但是当使用@javascript标记运行Cucumber时,请求会非常频繁地发送.这显然是非常不受欢迎的,我想存根这样的请求.现在,我想我可以使用stub_requestfrom webmock来实现这一点,就像这样:

Before do
  stub_request(:any, /.*jsonip.*/).to_return(:body => '{"ip":"24.104.73.2","about":"/about"}')
end
Run Code Online (Sandbox Code Playgroud)

但即使有这个,jsonip从Javascript调用.所以我发现webmock实际上并没有存根Ajax请求(至少没有上面的stub_request语句).

在Cucumber/Capybara/Selenium设置中存根Ajax请求的正确方法是什么?

iaf*_*nov 6

唯一的方法是更改​​url或禁用请求,具体取决于运行的环境应用程序。

您不能从测试端处理此请求,因为该请求是由浏览器而不是您的应用程序发出的。

另外,作为CI服务器的临时解决方案或解决方案,您可以在hosts文件中禁用此url。


Thi*_*ère 5

为此,您可以使用puffing-billy https://github.com/oesmith/puffing-billy。我正在使用它来模拟对我的应用程序中对Recurly的JSONP调用。