我有一个@RunWith(SpringJUnit4ClassRunner.class)
的测试类,这个用来初始化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();
....
}
...
}
问题在于触发的方面与我嘲笑的方面不同。
答案 0 :(得分:1)
答案就像
一样简单@InjectMocks
private MyAspectClass;