问题描述
对于一个班级,例如称为 A 类,我调用了一个外部 api(有例外,我已经模拟了该类)。在 B 类中,我有一个方法可以调用 A 类的方法,并带有可能发生的潜在异常。 B 类具有@Retryable 和@Recover 方法。我将 A 类作为模拟对象,将 B 类作为间谍。当我模拟 A 类抛出异常并验证它被调用的次数时 - 我得到了正确的 maxAttempts 调用。但是,当我尝试检查和验证恢复或可重试的方法时,我得到:
UnfinishedVerificationException
..
Missing method call for verify....
解决方法
不能模拟这些方法,因为它们是使用 CGLIB 代理的 spring-retry 创建的最终方法。