我想模擬NetHTTP請求,但應該允許一些請求。如何讓此路徑的請求通過webmock?
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/
如何讓全正則表達式,我最初想?爲什麼即使主機名失敗後\/
匹配?
這很奇怪。我嘗試打開一個控制檯並按照這個順序運行這些命令,並且我得到了正確的行爲......您是否正面說明'disable_net_connect!'行是在「open」之前運行的? – Glyoko
@Glyoko https://gist.github.com/Nakilon/d8a2f473d7675c590e69fc1b45dfaf44 – Nakilon
很奇怪......我得到了'OpenURI :: HTTPError:400 Bad Request',這是正確的,因爲access_token是假的。對不起,我不知所措。 – Glyoko