使用WebMockvalidationHTTPS调用

我想使用webmock来存根https 。 我们假设网关URL为https://some_gateway.com

做完之后:

 stub_request(:post, 'https://some_gateway.com').with(body: {}) 

在规格。

我使用Net :: HTTP生成请求:

  Net::HTTP.post_form(URI.parse('https://some_gateway.com'), {}) 

我收到问题,因为Webmock期望https://some_gateway.com但是收到版本添加端口433所以: http://www.secure.fake-payment.com:443/gateway_prodhttp://www.secure.fake-payment.com:443/gateway_prod :443 / gateway_prod所以看不到注册存根。

我该如何处理这种行为?

看看这个问题的答案: WebMock:Rspec – 使用JSON响应测试Facebookvalidation

您的代码将使用端口443执行http请求,而不是执行https

 Net::HTTP.post_form(URI.parse('https://some_gateway.com'), {}) 

在这里,您可以找到如何使用Net :: HTTP 使用Net :: HTTP.get为httpsurl执行https请求的答案