Как я могу написать тест для регистрации с Spring AOP? - PullRequest
0 голосов
/ 05 июля 2019

Я искал, но я не смог найти и понять, как я могу написать тест для моего кода

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 при выполнении метода

1 Ответ

0 голосов
/ 05 июля 2019

Я думаю, что вам нужен здесь интеграционный тест для проверки влияния конфигурации AOP. Вы не тестируете конфигурацию AOP, поскольку не имеет никакого смысла, что у вас есть одна строка кода.

Вместо этого вам нужно проверить, если, например, следующая строка parameters : {new Student(),"john"} регистрируется, когда вы вводите StudentService и звоните, например, updateStudentName(new Student(), "john")

...