嗨,我是弹簧测试框架的新手。我有一个像这样的Spring bean-
BEAN A{
@Autowired
BEAN B;
@Autowired
BEAN C;
}
我想模拟Bean A及其内部依赖项。
当我尝试使用Mockito实例化Bean A的模拟实例时,其失败,并显示“ UnsatisfiedDependencyException”。
所以我必须去查找Bean A中的每个依赖项,并分别模拟它们。
有没有一种方法可以一次模拟spring bean及其所有内部依赖项?
答案 0 :(得分:0)
使用Bean A对代码进行单元测试所需的全部内容:
@Mock A a;
对Bean A进行单元测试所需的一切:
@Mock B b;
@Mock C c;
A a = new A(b, c);
为了通过弹簧测试进行测试,可以例如这样设置测试配置:
@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);
}
}
答案 1 :(得分:0)
如果您使用Mockito,则可以这样做:
@Mock
private BeanB beanB
@Mock
private BeanC beanC;
@InjectMock
private BeanA beanA;
您可以通过两种方法使Mockito与此配合使用:
您可以使用
注释测试类@RunWith(MockitoJUnitRunner.class)
第二个选项涉及致电
Mockito.initMock(this)
在@Before方法中