У меня есть блок повтора
def my_method
app_instances = []
attempts = 0
begin
app_instances = fetch_and_rescan_app_instances(page_n, policy_id, policy_cpath)
rescue Exception
attempts += 1
retry unless attempts > 2
raise Exception
end
page_n += 1
end
где fetch_and_rescan_app_instances
получает доступ к сети, поэтому может генерировать исключение.
Я хочу написать rspec-тест, который сначала генерирует исключение, и не генерирует исключение во второй раз, когда он вызывается, поэтому я могу проверить, не повторяет ли второй раз исключение, my_method won ' t бросить exeption.
Я знаю, что могу сделать stub(:fetch_and_rescan_app_instances).and_return(1,3)
, и первый раз он возвращает 1 и второй раз 3, но я не знаю, как сделать первый раз исключение и вернуть что-то второе.