2

作为新黄瓜测试的一部分,我需要模拟一个外部 API 请求。我通常的做法是先编写发出调用的测试,然后期望 WebMock 抱怨它。然后使用 WebMock 提供的信息,存根请求。

但是在这个 repo 中(这对我来说是新的),WebMock 不会拦截请求。它只是超时。更奇怪的是,它的行为完全符合我在 rspec 中的预期(它拦截了我的请求尝试,并告诉我如何模拟它),但在 cucumber 中却没有。

我有这个features\support\webmock.rb:

WebMock.disable_net_connect!(:allow_localhost => true)

我也尝试将同一行放入features\support\env.rb. 仍然允许请求。

当然,我可以弄清楚如何以另一种方式存根,但是如果我犯了错误,我的测试可能会进行实时调用,这让我很困扰。任何人都可以帮忙吗?

更新:

我已经确定这(:allow_localhost => true) 确实阻​​止了外部请求的发出,但它不会触发显示错误请求的 WebMock 机制(我假设通过抢救异常),而是请求只是超时。还是不知道为什么。

更新 2:

我发现了问题。此 repo 使用自定义客户端 gem 与另一个内部服务通信。该 gem 挽救了连接错误,因此 webmock 错误被吞没了。

4

0 回答 0