我有一个重试块
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 不会抛出例外。
我知道我可以做到stub(:fetch_and_rescan_app_instances).and_return(1,3)
,第一次它返回 1,第二次返回 3,但我不知道如何第一次抛出异常并第二次返回一些东西。