如何通过配置Ruby on Rails应用彻底阻止RSpec和Capybara进行外部网络连接?

2026-04-11 15:330阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计257个文字,预计阅读时间需要2分钟。

如何通过配置Ruby on Rails应用彻底阻止RSpec和Capybara进行外部网络连接?

在我Rails项目中,我想编写测试非理想条件,比如网络连接缺失或超时。例如,我正在用gem连接API,若应用与外部API间连接出现问题,我希望确保正确处理错误。我已经可以做到这一点。

在我的Rails项目中,我想编写测试非理想条件,如缺乏互联网连接或超时.例如,我正在使用gem来联系API,并且如果我的应用程序和外部API之间存在连接问题,我希望确保正确处理错误.

如何通过配置Ruby on Rails应用彻底阻止RSpec和Capybara进行外部网络连接?

我已经可以通过使用VCR制作夹具并从“盒式磁带”中删除响应来完成此操作.但是,这有缺点:

>必须手动完成.
>如果我和一个团队(我是)一起工作,那么磁带就无法被监控.

如何在我的RSpec测试中简单地创建一个块来阻止外部连接,模拟缺少互联网连接?

我从来没有试过这样做,但也许你可以使用 webmock来删除所有请求.

before do stub_request(:any, /.*/).to_return(body: "errors", status: 422) end

More info关于存根外部服务.

本文共计257个文字,预计阅读时间需要2分钟。

如何通过配置Ruby on Rails应用彻底阻止RSpec和Capybara进行外部网络连接?

在我Rails项目中,我想编写测试非理想条件,比如网络连接缺失或超时。例如,我正在用gem连接API,若应用与外部API间连接出现问题,我希望确保正确处理错误。我已经可以做到这一点。

在我的Rails项目中,我想编写测试非理想条件,如缺乏互联网连接或超时.例如,我正在使用gem来联系API,并且如果我的应用程序和外部API之间存在连接问题,我希望确保正确处理错误.

如何通过配置Ruby on Rails应用彻底阻止RSpec和Capybara进行外部网络连接?

我已经可以通过使用VCR制作夹具并从“盒式磁带”中删除响应来完成此操作.但是,这有缺点:

>必须手动完成.
>如果我和一个团队(我是)一起工作,那么磁带就无法被监控.

如何在我的RSpec测试中简单地创建一个块来阻止外部连接,模拟缺少互联网连接?

我从来没有试过这样做,但也许你可以使用 webmock来删除所有请求.

before do stub_request(:any, /.*/).to_return(body: "errors", status: 422) end

More info关于存根外部服务.