Webmock没有捕获外部API调用

时间:2015-03-17 14:42:48

标签: ruby-on-rails ruby rspec cucumber webmock

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

但是在这个回购中(对我来说是新手),WebMock不会拦截请求。它只是超时了。更奇怪的是,它的行为与我在rspec中的预期完全一样(它拦截了我的请求尝试,并告诉我如何模拟它),但不是黄瓜。

我在features\support\webmock.rb:

中有这个
WebMock.disable_net_connect!(:allow_localhost => true)

我也试过在features\support\env.rb中添加同一行。仍然允许请求。

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

更新:

我已经确定(:allow_localhost => true) 确实保留了外部请求,但它没有触发显示错误请求的WebMock机制(我假设通过拯救异常),而是请求只是超时。仍然不知道为什么。

更新2:

我发现了这个问题。此repo使用自定义客户端gem与另一个内部服务进行通信。那个gem拯救了连接错误,因此吞下了webmock错误。

0 个答案:

没有答案