【问题标题】:How to mock a method of Aspect class?如何模拟 Aspect 类的方法?
【发布时间】:2021-11-22 10:06:56
【问题描述】:

我在控制器类中存在的方法上添加了自定义注释。 我已经实现了将自定义注释视为切入点的 Aspect 类。一旦执行到自定义注解,它就会调用类中存在的拦截器方法。该拦截器方法包含一个调用数据库来保存数据的逻辑。

在为控制器类编写测试用例时,如何模拟上述拦截器方法以抵抗数据库调用?

注意:在拦截器方法中我调用了另一个类的方法,它是 HandlerInterceptor 的实现

@Aspect
class SampleAspect {
  @Around("execution(@Xyz)")
  public Object interceptor(ProceedingJoinPoint jointPoint) {
    // database logic
  }
}
@RestController 
class SampleController {
  @GetMapping("/{id}")
  @Xyz
  public String getdata(String id) {
    return "hello";
  }
}

【问题讨论】:

  • 欢迎来到 SO。我添加了语法突出显示,将您的示例拆分为每个文件一个代码块并修复了缩进。下次请给你的问题多一点爱。 ???查看您的测试代码也会有所帮助。然后社区成员可以帮助您修复您的测试,而不是为您编写整个测试,这不是 Stack Overflow 的目的。在这里提问时,最好提供完整的MCVE 来重现您的问题。顺便说一句,切入点execution(@Xyz) 无效。请不要发布带有语法错误的伪代码。谢谢。

标签: spring-boot mockito junit5 spring-aop springmockito


【解决方案1】:

我写了两个你可能感兴趣的答案:

请从那里开始,如果您有任何后续问题,请告诉我,更新您自己的问题并准确显示您正在尝试做的事情。

【讨论】:

    猜你喜欢
    • 2015-08-26
    • 2021-12-31
    • 1970-01-01
    • 2020-01-03
    • 2011-02-15
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多