У меня есть тестовый класс:Spring методы @test Аспект Советы
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = IntegrationTestConfig.class)
@Transactional
@Component
public class AppTest {
@Autowired
private SimpleService simpleService;
@Test
public void test() {
simpleService.test();
}
}
Я хочу сделать аспект для того, чтобы контролировать метод тестового вызова
@Aspect
public class TestAspect {
@Pointcut("@annotation(org.junit.Test)")
public void pointcut() {
}
@After("pointcut()")
public void monitor() {
System.out.println("*** AFTER TEST ***");
}
}
Config:
@Configuration
@ImportResource("classpath:context.xml")
public class IntegrationTestConfig {
@Bean
public TestAspect testAspect() {
return new TestAspect();
}
}
Но мой метод мониторинга не был вызван, что случилось? Как правило - могу ли я советовать методы тестирования? Я хочу знать, какой метод теста был вызван.
Почему вы хотите использовать аспекты для этой цели? Простой журнал maven (при условии, что вы используете maven) сообщит вам, если ваш тест будет выполнен. Вы можете напрямую запустить тестовый набор через любую хорошую среду IDE, и она сообщит вам, какой тест был выполнен. –
Я хочу проверить вызов метода метода и аннотировать некоторые методы моей пользовательской аннотации и в Aspect проверить, имеет ли тест эту аннотацию или нет. – idmitriev
Добавьте '@ EnableAspectJAutoProxy' в свой класс @Configuration. См. Раздел 9.2 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html. –