2012-12-08 8 views
15

Come abbinare un URL del tipo:Come usare Webmock regex matcher?

http://www.example.com/foo/:id/bar 
http://www.example.com/foo/1/bar 
http://www.example.com/foo/999/bar 

stub_request (: post, "www.example.com")

+0

Stai cercando un Regexp che corrisponda agli schemi URL? – user2398029

+0

Sì. È così. –

risposta

11

http://www\..*?\.com/foo/\d+/bar dovrebbe funzionare per voi.

+0

Cos'è '.. *?'? –

+4

@BSeven '\ .' sta sfuggendo al carattere punto' 'mentre '. *?' Indica qualsiasi carattere (il carattere punto indica qualsiasi carattere) zero o più volte (il '*' è zero o più volte mentre '+' è 1 o più volte) e renderlo non-goloso (il punto interrogativo '?') così smette di cercare non appena compare '.com'. – Jack

12

Il secondo argomento di stub_request deve essere un'espressione regolare, non una stringa.

stub_request(:post, /http:\/\/www.example.com\/foo\/\d+\/bar/) 
17

È possibile utilizzare %r{} invece di // per l'espressione regolare in Ruby per evitare di dover sfuggire alla slash negli URL. Ad esempio:

stub_request(:post, %r{\Ahttp://www.example.com/foo/\d+/bar\z})