Testy jednostkowe Spring @Around AOP
Mogę przetestować większość moich lekcji wiosennych bez potrzeby robienia „wiosennych rzeczy”.
Mogę przetestować @ Przed metodami porad bez użycia Springa:
Przykładowy kod:
@Before("execution(* run(..)) && " + "" +
"target(target) && " +
"args(name)")
public void logName(Object target, String name) {
logger.info("{} - run: {}", target, name);
}
Przykładowy test:
@Test
public void testLogName() {
aspect.setLogger(mockLogger);
aspect.logName(this,"Barry");
assertTrue(mockLogger.hasLogged("TestAspect - run: Barry"));
}
Jednak porady @Around dotyczą obiektu ProceedingJoinPoint:
@Around("com.xyz.myapp.SystemArchitecture.businessService()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
// start stopwatch
Object retVal = pjp.proceed();
// stop stopwatch
return retVal;
}
Nie wiem, jak utworzyć instancję obiektu ProceedingJoinPoint. Jak przetestować tę klasę bez uruchamiania całego kontekstu aplikacji Spring?