ruby-on-rails - 如何阻止与 RSpec 和 Capybara 的外部连接?

标签 ruby-on-rails ruby testing rspec capybara

对于我的 Rails 项目,我想编写非理想条件下的测试,例如缺少互联网连接或超时。例如,我正在使用 gem 联系 API,如果我的应用程序和外部 API 之间存在连接问题,我想确保正确处理错误。

我已经可以通过用 VCR 制作夹具并从“盒式磁带”中删除响应来做到这一点。但是,这有缺点:

  • 必须手动完成。
  • 如果我正在与一个团队(我就是)一起工作,那么磁带就不会被忽略。

我怎样才能简单地在我的 RSpec 测试中创建一个阻止外部连接的 block ,模拟缺少互联网连接?

最佳答案

根据这篇思想机器人文章

https://robots.thoughtbot.com/how-to-stub-external-services-in-tests#disable-all-remote-connections

# spec/spec_helper.rb
require 'webmock/rspec'
WebMock.disable_net_connect!(allow_localhost: true)

关于ruby-on-rails - 如何阻止与 RSpec 和 Capybara 的外部连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26130939/

相关文章:

ruby-on-rails - 是否有基于一组参数生成 URL 的 Ruby 库/gem?

ruby-on-rails - Ruby on Rails 命令行看起来很奇怪

ruby-on-rails - ruby 和 Redis : set a timeout for subscribtions

testing - 带变量的 Fitnesse 测试套件

perl - 在 Perl 的 Test::More 中声明后如何使用参数 `tests`?

javascript - 显示 Rails 4 中所选类别的子类别

ruby-on-rails - Rails 3 跨子域 flash 消息

ruby - Ruby 的稀疏矩阵库

ruby-on-rails - 如何使用不同的名称为同一个模型创建两个关系?

android - 暂时禁用android中的互联网访问?