gpt4 book ai didi

java - 使用Mockito需要覆盖所有方法吗?

转载 作者:太空宇宙 更新时间:2023-11-04 10:12:54 35 4
gpt4 key购买 nike

用它在 Spring 中进行测试。使用@Mock Mockito是否需要用when子句覆盖原始类的所有方法回复?与 @MockBean 有什么区别?

最佳答案

它不是覆盖覆盖所有方法的附件。

@Mock 是纯 Mockito 库,其中 @MockBean 是 Mockito 的 spring 实现

因此,在您的 Spring 组件类中,如果未定义 @Autowired 字段(就像简单的 java 类模拟为对象一样),则使用 @Mock 注释来模拟该类的对象。

但是你的 spring 组件类有 @Autowired 字段,并且你希望 spring 容器将该字段初始化为 Mock 对象,然后使用 @MockBean 注释(spring 将进行模拟并 Autowiring 它)。

对于前

class Test {

public void testMethod(){ -- some code --}

}

您可以使用@Mock注释进行测试调用来模拟它。 Test 类中没有其他依赖项或字段。

@Component
class Test {

@Autowired
Other other;

public void testMethod(){ -- some code --};

}

然后,如果您想模拟其他对象并传递其他对象的功能(即我们模拟 DAO 层而不调用实际逻辑),则可以使用 @MockBean 模拟其他对象。 Spring 容器将初始化另一个字段。

关于java - 使用Mockito需要覆盖所有方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105795/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com