首页 > 解决方案 > 模拟一个spring bean及其内部依赖项

问题描述

嗨,我是 Spring 测试框架的新手。我有一个像这样的 Spring bean -

BEAN A{
    @Autowired
    BEAN B;
    @Autowired
    BEAN C;
}

我想模拟 Bean A 及其内部依赖项。

当我尝试使用 Mockito 实例化 Bean A 的模拟实例时,它以“UnsatisfiedDependencyException”失败。

所以我必须去找到 Bean A 中的每一个依赖项并单独模拟它们。

有没有一种方法可以一次模拟一个 Spring bean 及其所有内部依赖项?

标签: javaspringmockingmockitospring-test

解决方案


如果您使用 Mockito,那么您可以这样做:

@Mock
private BeanB beanB

@Mock
private BeanC beanC;

@InjectMock
private BeanA beanA;

你有两种方法可以让 Mockito 使用它:

您可以使用注释您的测试类

@RunWith(MockitoJUnitRunner.class)

第二个选项涉及调用

Mockito.initMock(this)

在你的 @Before 方法中


推荐阅读