2015-07-07 4 views
1

У меня есть тестовый класс: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(); 
    } 

} 

Но мой метод мониторинга не был вызван, что случилось? Как правило - могу ли я советовать методы тестирования? Я хочу знать, какой метод теста был вызван.

+0

Почему вы хотите использовать аспекты для этой цели? Простой журнал maven (при условии, что вы используете maven) сообщит вам, если ваш тест будет выполнен. Вы можете напрямую запустить тестовый набор через любую хорошую среду IDE, и она сообщит вам, какой тест был выполнен. –

+0

Я хочу проверить вызов метода метода и аннотировать некоторые методы моей пользовательской аннотации и в Aspect проверить, имеет ли тест эту аннотацию или нет. – idmitriev

+0

Добавьте '@ EnableAspectJAutoProxy' в свой класс @Configuration. См. Раздел 9.2 http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html. –

ответ

0

JUnit сам имеет Rules, который может быть использован для этого.

+0

Правила вызывают перед вызовом теста, но я хотел бы профайл после. – idmitriev

+0

Они включают вызов вызова. Вы можете действовать до и/или после. Это похоже на аспект без внешнего определения PointCut. –

+0

ОК. Может использовать entitymanager в вызове метода Rule ??? – idmitriev

Смежные вопросы