@Mock: 创建一个Mock.
@InjectMocks: 创建一个实例,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。
SomeHandler类中@Autowired了OneDependency类的对象,在写SomeHandler的test用例的时候要用到OneDependency对象,则需要将OneDependency @Mock到SomeHandler中,注入到SomeHandler对象中。
而SomeHandler使用@InjectMocks注入。
注意:必须使用@RunWith(MockitoJUnitRunner.class) 或 Mockito.initMocks(this)进行mocks的初始化和注入。
@RunWith(MockitoJUnitRunner.class)
public class Test {
@InjectMocks
private SomeHandler someHandler;
@Mock
private OneDependency oneDependency; // 此mock将被注入到someHandler
// ...
}
参考:
https://blog.csdn.net/kurt17/article/details/52670482