对于我的 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/