ruby-on-rails-3 - 在 cucumber / capybara / Selenium 中 stub Ajax请求?

标签 ruby-on-rails-3 selenium tdd cucumber capybara

在我的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/

相关文章:

java - Selenium chromeDriver 打开速度比直接在 chrome 浏览器中打开网站慢得多

java - 如何解决 org.openqa.selenium.NoSuchElementException

c# - TDD、DDD 和封装

ruby-on-rails - Rails 在一个表单上更新多个模型

ruby-on-rails-3 - 为什么我的测试不适用于此表单?

javascript - 使用 javascript 在 laravel 中进行 Behat 测试 - 不使用测试环境

ruby - 为什么我的测试不起作用?

unit-testing - 如何在Symfony2中分离单元测试和功能测试?

ruby-on-rails - Rails 4 销毁操作,undefined_method message_path

activerecord - 如何设置两个模型之间具有 has_many 关联