首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在@Mock中使用SpringRunner

在@Mock中使用SpringRunner
EN

Stack Overflow用户
提问于 2021-03-19 16:00:13
回答 2查看 376关注 0票数 0

我读到,当使用@Mock时,它应该与@RunWith(MockitoJUnitRunner.class)一起使用,而对于@MockBean,它应该与@RunWith(SpringRunner.class)一起使用。

然而,对于@Mock,我看到MockitoJunitRunner或SpringRunner都可以互换使用。我很困惑为什么SpringRunner也能在这种情况下工作?

代码语言:javascript
复制
@RunWith(MockitoJUnitRunner.class) // also work when @RunWith(SpringRunner.class) is used
public class testService {
  @InjectMocks
  private ServiceA serviceA;

  @Mock
  private DependencyA dependencyA;
}
EN

回答 2

Stack Overflow用户

发布于 2021-03-20 22:52:20

通常,如果您正在使用Spring Boot并且需要模拟来自Spring的bean,那么您应该使用Spring Boot的@ ApplicationContext支持,而不是简单的@Mock。

如果你的bean注入是通过自动连接的注解进行的,那么@mock将无法工作。

票数 0
EN

Stack Overflow用户

发布于 2021-03-21 20:22:18

在谈论@MockBean的时候引用这个帖子

这个类包含在spring-boot-test库中。它允许在Spring ApplicationContext中添加Mockito mock。

基本上,@MockBean@Mock@InjectMocks的组合。因此,您也可以将@Mock与springrunner一起使用,但当然不推荐这样做,因为它更重。

通常,您将使用Mockito进行轻量级单元测试,而当您需要一个模拟的servlet环境时,如在组件测试或混合集成测试中,则使用@MockBean

Difference between @Mock, @MockBean and Mockito.mock()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66704421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档