2016-06-08 1 views
1

У меня есть тестовый класс с @RunWith(SpringJUnit4ClassRunner.class) и для инициализации Mockito:Вводят фиктивный объект с использованием SpringJUnit4ClassRunner и Mockito в Аспекте класс

@Before 
public void initMocks() { 
    MockitoAnnotations.initMocks(this); 
} 

Теперь у меня есть @Autowired поля, чтобы получить аспект консультирования, но не могу придать издевается ,

Мой аспект:

@Autowired 
private MyMock myMock; 
@Around("execution(* xxx.MyService.aspectMethod(..))") 
public void process(ProceedingJoinPoint joinPoint) throws Throwable { 
    myMock.mockMethod(); 
} 

Мой тестовый класс:

@RunWith(SpringJUnit4ClassRunner.class) 
@EnableAspectJAutoProxy(proxyTargetClass = true) 
public class MyTest { 

    @Autowired 
    private MyService myService; 
    @Mock 
    private MyMock myMock; 
    @InjectMocks 
    private MyAspectClass; 

    @Before 
    public void initMocks() { 
     MockitoAnnotations.initMocks(this); 
    }  


    public void shouldXXXX() { 

     doThrow(Exception.class).when(myMock).mockMethod(); 
     myService.aspectMethod(); 

     .... 
    } 

    ... 
} 

Вопрос заключается в том, что аспект вызвал не то же самое, что я насмешливо.

ответ

1

Ответ был так прост, как

@InjectMocks 
    private MyAspectClass;