JUnit prueba para AspectJ

Estoy tratando de escribir pruebas de Junit para Custom Aspect. Aquí está el fragmento de clase de aspecto:

@Aspect
@Component
public class SampleAspect {

    private static Logger log = LoggerFactory.getLogger(SampleAspect.class);

    @Around("execution(* org.springframework.data.mongodb.core.MongoOperations.*(..)) || execution(* org.springframework.web.client.RestOperations.*(..))")
    public Object intercept(final ProceedingJoinPoint point) throws Throwable {
        logger.info("invoked Cutom aspect");
         return point.proceed();

    }

}

Entonces, el aspecto anterior intercepta cada vez que el punto de unión coincide con el corte de punto. Está funcionando bien.

Pero mi pregunta es cómo probar la unidad en esa clase. Tengo la siguiente prueba Junit:

@Test(expected = MongoTimeoutException.class)
    public void TestWithMongoTemplate() {
        //MongoDocument class
        TestDocument test = new TestDocument();

        ApplicationContext ctx = new AnnotationConfigApplicationContext(TestMongoConfigurationMain.class);
        MongoTemplate mongoTemplate = ctx.getBean(MongoTemplate.class);

        //this call is being intercepted by SampleAspect
        mongoTemplate.save(test);

    }

Así que mimongoTemplate.save(test) en Junit está siendo interceptado porSampleAspect ya que coincide con pointcut. Pero, ¿cómo debo asegurarme en junits (probablemente afirmando) que miSampleAspect Qué intercepta cuando se invoca ese punto común?

No puedo afirmar el valor de retorno deintercept() ya que no hace nada especial aparte de ejecutar punto conjunto. Por lo tanto, mi Junit no puede encontrar ninguna diferencia si se ejecuta por aspecto o una ejecución regular basada en valores de retorno.

Cualquier ejemplo de fragmentos de código en la prueba de aspecto sería excelente si se proporciona.

Respuestas a la pregunta(1)

Su respuesta a la pregunta