Как проверить поведение, если запрос занимает слишком много времени с rspec?
Я подумываю об использовании потока, чтобы высмеивать это:
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
Я хочу убедиться, что послесначала делается запрос, другой поток «включается», который в этом случае просто бездействует в течение хх секунд.Тогда я должен ожидать, что запрос истечет время ожидания, потому что выполнение
занимает слишком много времени. Я думаю, что есть лучшие способы сделать это.Учитывая тот факт, что URL, который я запрашиваю, не имеет отношения к делу.Я просто хочу проверить, действительно ли истечет время ожидания, если выполнение займет слишком много времени.
Могу ли я использовать stub (), ожидаем () или любые другие функции rspec для имитации этого?
Есть ли способ, которым я могу передать "блок" в метод заглушки
http_request_to_google.stub(:connection).executethisblock(sleep for xx seconds)
.and_throw error ?
любая помощь приветствуется