2017-02-15 45 views
1

我想模擬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/ 

如何讓全正則表達式,我最初想?爲什麼即使主機名失敗後\/匹配?

+1

這很奇怪。我嘗試打開一個控制檯並按照這個順序運行這些命令,並且我得到了正確的行爲......您是否正面說明'disable_net_connect!'行是在「open」之前運行的? – Glyoko

+1

@Glyoko https://gist.github.com/Nakilon/d8a2f473d7675c590e69fc1b45dfaf44 – Nakilon

+1

很奇怪......我得到了'OpenURI :: HTTPError:400 Bad Request',這是正確的,因爲access_token是假的。對不起,我不知所措。 – Glyoko

回答