2017-02-15 3 views
1

Ich möchte NetHTTP-Anfragen vortäuschen, aber einige sollten erlaubt sein.Wie erlaube ich der Anfrage mit diesem Pfad das Webmock zu übergeben?

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

Wenn ich eine erlaubte Anfrage wie folgt deklarieren:

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

und rufen:

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

ich dieses:

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").
...

Es ist auch mit regex nicht wie dies:

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

aber nicht mit dieser fehlschlagen:

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

Wie die volle regex ermöglichen, die ich anfangs wollte? Warum schlägt auch die \/ nach Hostname fehl?

+1

Das ist sehr seltsam. Ich habe versucht, eine Konsole zu öffnen und diese Befehle in dieser Reihenfolge auszuführen, und ich habe das richtige Verhalten ... Sind Sie sicher, dass die Zeile 'disable_net_connect!' Vor dem 'open' ausgeführt wird? – Glyoko

+1

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

+1

Sehr seltsam ... Ich erhalte 'OpenURI :: HTTPError: 400 Schlechte Anfrage ', die korrekt ist, da das access_token gefälscht ist. Tut mir leid, ich bin ratlos. – Glyoko

Antwort

Verwandte Themen