【发布时间】: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