我们必须实现重试机制。
为了测试 RetryProvider
,我想要一个假类在前两次调用时抛出异常,但在第三次调用时返回一个有效对象。
在正常情况下(不抛出异常)我们可以使用 A.CallTo(() => this.fakeRepo.Get(1)).ReturnsNextFromSequence("a", "b", "c");
我想要类似的东西:
- 第一次调用:throw new Exception();
- 第二次调用:throw new Exception();
- 第三次调用:返回“成功”;
我怎样才能配置我的假货来做到这一点?
提前致谢
最佳答案
var fakeRepo = A.Fake<IFakeRepo>();
A.CallTo(() => fakeRepo.Get(1))
.Throws<NullReferenceException>()
.Once()
.Then
.Throws<NullReferenceException>()
.Once()
.Then
.Returns('a');
在 Specifying different behaviors for successive calls 查看更多相关信息.
关于c# - FakeItEasy 配置 fake 以抛出异常并在下一次调用时返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47017216/