真实调用
在单元测试中,抽象类的方法需要真实调用,那么用@InjectMocks是不管用的,需要如下代码:
@InjectMocks
A a;
@Before
public void setUp() {
a = mock(A.class, Answers.CALLS_REAL_METHODS);
MockitoAnnotations.initMocks(this);
}
a = mock(A.class, Answers.CALLS_REAL_METHODS)可以mock出相应的对象,并且在调用的时候,因为Answers.CALLS_REAL_METHODS这个参数,可以保证真实方法的调用,这就可以作为方法调用的入口,进行单元测试; 不过@InjectMocks还是要使用的,因为你要保证@Mock注解的对象添加到@InjectMocks对象的环境中;