java - 需要对人们在测试中使用的不同用例进行一些解释

标签 java testing mockito powermockito

我的理解是: @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/

相关文章:

java - 根据类名测试类是否包含实例变量

java - 为什么异常完成前调用get()会等待异常执行?

java - 使用 ProGuard 混淆 GWT Web 应用程序

java - 使用 Selenium JAVA 代码读取具有 <SPAN> 标签的列

angular - 故事书 6 错误 : ngrx no provider for Store error - how to fix?

java - Junit 测试 Map<String, List<String>> 的 java.lang.NullPointerException

javascript - 如何测试 react 组件的数组长度?

testing - 如何使用 TestFX 在包含下划线的文本字段中写入字符串?

java - 如何使用 Mockito 模拟我的父类(super class)的方法

java - 如何对我收到正确的 PreparedStatement 进行单元测试?