首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟spring bean及其内部依赖项

模拟spring bean及其内部依赖项
EN

Stack Overflow用户
提问于 2019-03-04 22:17:31
回答 2查看 785关注 0票数 0

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

代码语言:javascript
复制
BEAN A{
    @Autowired
    BEAN B;
    @Autowired
    BEAN C;
}

我想模拟Bean A以及它的内部依赖关系。

当我尝试使用Mockito创建一个Bean A的模拟实例时,它失败了,返回"UnsatisfiedDependencyException“。

因此,我必须找到Bean A中的每个依赖项,并分别模拟这些依赖项。

有没有一种方法可以一下子模拟spring bean和它的所有内部依赖关系?

EN

回答 2

Stack Overflow用户

发布于 2019-03-04 22:33:38

使用Bean A对代码进行单元测试所需的全部内容:

代码语言:javascript
复制
@Mock A a;

对Bean A进行单元测试所需的所有内容:

代码语言:javascript
复制
@Mock B  b;
@Mock C  c;

A a = new A(b, c);

为了使用spring-test进行测试,可以像这样设置测试配置:

代码语言:javascript
复制
@Mock B  b;
@Mock C  c;


@Configuration static public class TestConfig {
    @Bean B b() { return b; } 
    @Bean C c() { return c; } 
    @Bean A a(B b, C c) {
        return new A(b,c);
    } 
}
票数 0
EN

Stack Overflow用户

发布于 2019-03-04 22:40:03

如果你使用Mockito,你可以这样做:

代码语言:javascript
复制
@Mock
private BeanB beanB

@Mock
private BeanC beanC;

@InjectMock
private BeanA beanA;

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

你可以用注解你的测试类

代码语言:javascript
复制
@RunWith(MockitoJUnitRunner.class)

第二个选项涉及调用

代码语言:javascript
复制
Mockito.initMock(this)

在您的@Before方法中

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

https://stackoverflow.com/questions/54985072

复制
相关文章

相似问题

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