ruby - WebMock simula la API que falla(sin Internet, timeout++)
vcr rspec (1)
Después de excavar, encontré algunas soluciones para esto.
Aparentemente puede cambiar to_return(...)
to to_timeout
, lo que producirá un error de tiempo de espera. También puede tener to_raise(StandardError)
. Para obtener una referencia completa, consulte https://github.com/bblimke/webmock#raising-timeout-errors .
Tiempo de espera, o servidor no encontrado , ejemplo:
stubbed_request = stub_request(:get, "#{host}/api/something.json").
with(:headers => {''Accept''=>''*/*'', ''Content-Type''=>''application/json'', ''User-Agent''=>''Ruby''}).
to_timeout
Levante StandardError, o sin Internet / otra excepción, ejemplo:
stubbed_request = stub_request(:get, "#{host}/api/something.json").
with(:headers => {''Accept''=>''*/*'', ''Content-Type''=>''application/json'', ''User-Agent''=>''Ruby''}).
to_raise(StandardError)
#Error example 2:
stubbed_request = stub_request(:get, "#{host}/api/something.json").
with(:headers => {''Accept''=>''*/*'', ''Content-Type''=>''application/json'', ''User-Agent''=>''Ruby''}).
to_raise("My special error")
Ahí vas, no demasiado duro después de todo.
No tengo idea de cómo no lo encontré la primera vez. De todos modos, espero que esto ayude a alguien algún día.
Intento simular el comportamiento inesperado de una API web, como no encontrar el servidor y los tiempos de espera, usando webmock.
Cuál sería la mejor forma de hacer esto? Todo lo que puedo pensar es hacer algo como esto:
stubbed_request = stub_request(:get, "#{host}/api/something.json").
with(:headers => {''Accept''=>''*/*'', ''Content-Type''=>''application/json'', ''User-Agent''=>''Ruby''}).
to_return(:status => [500, "Internal Server Error"])
Eso debería funcionar para cosas como 404, etc., pero ¿cómo puedo probar los tiempos de espera , servidor no encontrado / fuera de línea y sin conexión a Internet ?