Имитация тайм-аута в RSpec? - PullRequest
       1

Имитация тайм-аута в RSpec?

0 голосов
/ 28 сентября 2018

Я пишу регрессионные тесты для части приложения Rails, которая выглядит следующим образом:

Timeout.timeout(mode == :index ? 6 : 45) do
  imap = Net::IMAP.new(...)
end

Я хочу проверить это в каждом случае (, т. Е. mode == :index& mode != :index), установлена ​​правильная длина Timeout.

Я пытался использовать ActiveSupport's travel:

allow(Net::IMAP).to receive(:new).and_wrap_original do |m, *args|
  travel 6
  m.call(*args)
end

expect { method }.to raise_error(Timeout::Error)

, но он не срабатываетТайм-аут.Если вместо этого я использую sleep, тогда он работает , но, очевидно, я не ставлю sleep 45 в модульном тесте.

Как я могу имитировать прохождениевремя срабатывания таймаута в тесте?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...