如何允许具有此路径的请求通过 webmock?

How do I allow the request with this path to pass the webmock?

我想模拟 NetHTTP 请求,但应该允许一些请求。

require "open-uri"    
require "webmock"
WebMock.enable!

当我像这样声明允许的请求时:

WebMock.disable_net_connect! allow: /\Ahttps:\/\/graph\.facebook\.com\/v2\.8\/debug_token\?access_token=/

并致电:

open("https://graph.facebook.com/v2.8/debug_token?access_token=qwerty", &:read)

我明白了:

HTTP connections are disabled. Unregistered request: GET https://graph.facebook.com/v2.8/debug_token?access_token=qwerty with headers ...
You can stub this request with the following snippet:
stub_request(:get, "https://graph.facebook.com/v2.8/debug_token?access_token=qwerty").
...

它也像这样使用正则表达式失败:

/\Ahttps:\/\/graph\.facebook\.com\//

但不会失败:

/\Ahttps:\/\/graph\.facebook\.com/

如何允许我最初想要的完整正则表达式?为什么主机名后面的\/也匹配不上?

您的 Webmock 版本 (1.22.6) 在使用 open-uri 时存在错误:

https://github.com/bblimke/webmock/issues/600

您可以通过将 webmock gem 更新到最新的 1.x 或 2.x

来修复此错误