如何配置stub_request返回200状态码解决undefined method `code'报错
问题解决步骤
错误原因
报错核心是response变量的值为false而非预期的HTTP响应对象,因此调用code方法失败,问题根源主要出在stub配置的URL格式错误,导致请求未被正确Stub匹配。
具体修复方案
- 修正Stub请求的URL格式
你现有配置中的URL缺少协议后的双斜杠,stub_request对URL的匹配规则是严格校验的,无法匹配到实际发起的请求,修正后配置如下:stub_request(:get, 'https://domain.com/stock').to_return(status: 200) - 校验响应类型匹配逻辑
你的业务代码中判断的是字符串类型的"200",stub_request模拟的响应会自动适配你使用的HTTP客户端的返回格式(比如Net::HTTP的响应code默认就是字符串类型),无需额外调整,如果使用其他客户端可以额外指定返回头适配即可。 - 可选:开启调试确认匹配情况
如果修正URL后仍有问题,可以添加调试配置查看请求匹配情况:
运行测试后可以查看控制台输出,确认实际发起的请求和Stub配置是否完全匹配。WebMock.debug = true
内容的提问来源于stack exchange,提问作者Rodrigo Chable
相关产品推荐
相关产品推荐

