【问题标题】:Testing @Retryable and @Recover methods in Spring Boot + Mockito在 Spring Boot + Mockito 中测试 @Retryable 和 @Recover 方法
【发布时间】:2021-06-22 13:22:08
【问题描述】:

对于一个类,例如称为A类,我调用了一个外部api(有例外,我已经嘲笑了这个类)。在 B 类中,我有一个方法调用 A 类的方法,可能会发生异常。 B 类具有@Retryable 和@Recover 方法。我将 A 类作为模拟对象,将 B 类作为间谍。当我模拟 A 类以引发异常并验证它被调用的时间时 - 我得到了正确的 maxAttempts 调用。但是,当我尝试检查和验证恢复或重试的方法时,我得到:

UnfinishedVerificationException
..
Missing method call for verify....

有谁知道是否可以验证这些方法调用?

【问题讨论】:

  • 你能显示代码吗?如果您的恢复方法在重试用尽后被执行,那么您为什么要再次验证恢复?
  • 据我所知,恢复方法只会在重试后调用一次,我建议检查返回值以确保执行恢复

标签: spring-boot junit mockito spring-test spring-retry


【解决方案1】:

这些方法不能被模拟,因为它们是 spring-retry 使用 CGLIB 代理创建的最终方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2018-12-23
    • 2020-01-20
    • 2018-12-29
    • 1970-01-01
    • 2021-11-04
    • 2021-10-28
    相关资源
    最近更新 更多