我的理解是:
@Mock 创建一个模拟对象,相当于 Mockito.mock()
相似度
@Spy 相当于 Mockito.spy()
@InjectMocks 将模拟依赖注入(inject)到一个类中,并为注入(inject)模拟依赖的类创建一个新对象。
我看到一些代码,其中 @InjectMocks Class class = Mockito.mock(ClassName.class);
或@InjectMocks Class class = Mockito.spy(ClassName.class);
Mockito.spy(ClassName.class)
之间有什么区别?和Mockito.spy(new ClassName());
最佳答案
mocked
对象的 InjectMocks
会将模拟依赖项注入(inject)到模拟类中。
mocked
对象没有任何行为(方法)的实现,您需要使用 when(....).then(....) 来声明它们
@InjectMocks Class class = Mockito.mock(ClassName.class);
,spy
对象的 InjectMocks
会将模拟依赖项注入(inject)到类中,并使用真实对象的行为(方法)实现,除非您使用 覆盖它当(....).then(....)
@InjectMocks Class class = Mockito.spy(ClassName.class);
关于java - 需要对人们在测试中使用的不同用例进行一些解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61870586/