@Mock与@InjectMocks的区别

时间:2023-03-09 18:48:05
@Mock与@InjectMocks的区别

@Mock: 创建一个Mock.

@InjectMocks: 创建一个实例,简单的说是这个Mock可以调用真实代码的方法,其余用@Mock(或@Spy)注解创建的mock将被注入到用该实例中。

注意:必须使用@RunWith(MockitoJUnitRunner.class) 或 Mockito.initMocks(this)进行mocks的初始化和注入。

@RunWith(MockitoJUnitRunner.class)
public class Test { @InjectMocks
private SomeHandler someHandler; @Mock
private OneDependency oneDependency; // 此mock将被注入到someHandler // ...
}