当方法使用Flexmock引发错误时,我一直在尝试模拟我的方法救援行为。
begin
adwords = AdWords::API.new(get_credentials(env))
adwords
rescue AdWords::Error::GoogleInternalError
refresh_application_token!
retry
end
我的考试......
adwords_mock = flexmock(AdWords::API)
adwords_mock.should_receive(:new).with('badtoken').and_raise(AdWords::Error::GoogleInternalError, 0).once
adwords_mock.should_receive(:new).with('goodtoken').and_return('valid_adwords_object').once
然而,在运行测试时,他们最终会出现错误 - 模拟引发的错误和代码应该挽救。有什么想法吗?