如何配置Ruby on Rails项目以禁止RSpec和Capybara进行外部网络请求?

更新于
2026-10-09 18:42:53
1阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

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

如何配置Ruby on Rails项目以禁止RSpec和Capybara进行外部网络请求?

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

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

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

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

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

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

如何配置Ruby on Rails项目以禁止RSpec和Capybara进行外部网络请求?

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

More info关于存根外部服务.

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

如何配置Ruby on Rails项目以禁止RSpec和Capybara进行外部网络请求?

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

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

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

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

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

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

如何配置Ruby on Rails项目以禁止RSpec和Capybara进行外部网络请求?

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

More info关于存根外部服务.