如何通过配置Ruby on Rails应用彻底阻止RSpec和Capybara进行外部网络连接?
- 内容介绍
- 文章标签
- 相关推荐
本文共计257个文字,预计阅读时间需要2分钟。
在我Rails项目中,我想编写测试非理想条件,比如网络连接缺失或超时。例如,我正在用gem连接API,若应用与外部API间连接出现问题,我希望确保正确处理错误。我已经可以做到这一点。
在我的Rails项目中,我想编写测试非理想条件,如缺乏互联网连接或超时.例如,我正在使用gem来联系API,并且如果我的应用程序和外部API之间存在连接问题,我希望确保正确处理错误.我已经可以通过使用VCR制作夹具并从“盒式磁带”中删除响应来完成此操作.但是,这有缺点:
>必须手动完成.
>如果我和一个团队(我是)一起工作,那么磁带就无法被监控.
如何在我的RSpec测试中简单地创建一个块来阻止外部连接,模拟缺少互联网连接?
我从来没有试过这样做,但也许你可以使用 webmock来删除所有请求.before do stub_request(:any, /.*/).to_return(body: "errors", status: 422) end
More info关于存根外部服务.
本文共计257个文字,预计阅读时间需要2分钟。
在我Rails项目中,我想编写测试非理想条件,比如网络连接缺失或超时。例如,我正在用gem连接API,若应用与外部API间连接出现问题,我希望确保正确处理错误。我已经可以做到这一点。
在我的Rails项目中,我想编写测试非理想条件,如缺乏互联网连接或超时.例如,我正在使用gem来联系API,并且如果我的应用程序和外部API之间存在连接问题,我希望确保正确处理错误.我已经可以通过使用VCR制作夹具并从“盒式磁带”中删除响应来完成此操作.但是,这有缺点:
>必须手动完成.
>如果我和一个团队(我是)一起工作,那么磁带就无法被监控.
如何在我的RSpec测试中简单地创建一个块来阻止外部连接,模拟缺少互联网连接?
我从来没有试过这样做,但也许你可以使用 webmock来删除所有请求.before do stub_request(:any, /.*/).to_return(body: "errors", status: 422) end
More info关于存根外部服务.

