【发布时间】:2019-12-12 03:14:38
【问题描述】:
我在我的一个项目中使用了稍微过时的 Polly 版本 - 5.9。
对于一个测试用例,我正在尝试创建一个在调用Execute() 时总是抛出异常的策略。此策略将在测试时注入到实际代码中,并且预期会失败。
我可以这样做:
Policy somePolicy = Policy.Handle<Exception>().Retry();
somePolicy.Execute((cToken) => { throw new Exception(); }, new Context("A context"), cancellationToken);
但是,我无法访问或控制Execute() 的第一个参数,即(cToken) => { throw new Exception(); } 部分。
我还尝试了使用HandleResult() 的解决方法,如下所示:
Policy<bool> somePolicy = Policy.HandleResult<bool>((o) => { throw new Exception(); }).Retry();
这是可行的,但是,Policy<bool> 使得与仅使用 Policy 的其余代码集成变得很麻烦。
策略本身无关紧要,只要它在任何Execute() 调用中引发异常即可。
有没有一种干净的方法来实现这一点?
PS:目前无法升级 Polly。
【问题讨论】: