我搜索了但我找不到并理解我如何为我的代码编写测试
AOP
@Slf4j
@Aspect
@Component
public class SpringAopLogging {
@Pointcut("execution(public* *(..)) && @within(com.muaz.aop.Logger)")
public void isAnnotated() {}
@Before("isAnnotated()")
public void before(JoinPoint point) {
log.info(" parameters : {} ", point.getArgs());
}
@AfterReturning(pointcut = "isAnnotated()", returning = "retVal")
public void after(JoinPoint point, Object retVal) {
log.info("retVal is : {}", retVal);
}
}
注释
@Target({ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Logger {
}
服务
@Service
@Logger
public class StudentService {
public Student updateStudentName(Student student, String name){
student.setName(name);
return student;
}
}
我想测试@Before和@AfterReturning是否可以在方法执行时与@Logger一起使用
答案 0 :(得分:0)
我认为您需要在这里进行集成测试,以测试AOP配置的效果。 您无需测试AOP配置,因为您在其中仅需一行代码就毫无意义。
相反,您需要测试在注入parameters : {new Student(),"john"}
并调用例如StudentService
时是否记录了以下行updateStudentName(new Student(), "john")