我需要模拟外部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错误。