¿Cómo pruebo (rspec) una solicitud http que tarda demasiado?

¿Cómo pruebo el comportamiento si una solicitud tarda demasiado con rspec?

Estoy pensando en usar hilo para burlarme de esto:

describe "Test" do 
  it "should timeout if the request takes too long" do 
    lambda {
      thread1 = Thread.new { #net::http request to google.com }
      thread2 = Thread.new { sleep(xx seconds) }
      thread1.join 
      thread2.join
    }.should raise_error
  end 
end

Quiero asegurarme de que después de que se realiza la solicitud por primera vez, "entre en funcionamiento" otro subproceso, que en este caso es solo una suspensión por xx segundos. Entonces debería esperar que la solicitud se agote porque se tarda demasiado en ejecutar

Creo que hay mejores formas de hacer esto. Dado que la url que solicito no es relevante. Solo quiero probar que, de hecho, se agotará el tiempo de espera si tarda demasiado en ejecutarse.

¿Puedo usar stub (), expect () o cualquier característica rspec para simular esto?

¿Hay alguna forma de pasar un 'bloque' al método de código auxiliar

http_request_to_google.stub(:connection).executethisblock(sleep for xx seconds)
.and_throw error ?

cualquier ayuda es apreciada

Respuestas a la pregunta(6)

Su respuesta a la pregunta