参考文章
@Mock与@InjectMocks的区别,mock对象注入另一个mock
Mock InjectMocks ( @Mock 和 @InjectMocks )区别
@Mock: 创建一个Mock.
@InjectMocks: 创建一个实例,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。
注意:必须使用@RunWith(MockitoJUnitRunner.class) 或 Mockito.initMocks(this)进行mocks的初始化和注入。【MockitoAnnotations.initMocks替换了Mockito.initMocks】
@RunWith(MockitoJUnitRunner.class)
public class Test {
@InjectMocks
private SomeHandler someHandler;
@Mock
private OneDependency oneDependency; // 此mock将被注入到someHandler
// ...
}
InjectMocks,就好比是service层的对象。Mock好比是dao层对象。
Mockito.when(Mock对象.****方法).thenReturn(***值)
这样,InjectMocks对象调用某方法时候,
在面向对象程序设计中,模拟对象(英语:mock object,也译作模仿对象)是以可控的方式模拟真实对象行为的假的对象。