嗨,我是spring测试框架的新手。我有一个Spring bean,它是这样的-
BEAN A{
@Autowired
BEAN B;
@Autowired
BEAN C;
}我想模拟Bean A以及它的内部依赖关系。
当我尝试使用Mockito创建一个Bean A的模拟实例时,它失败了,返回"UnsatisfiedDependencyException“。
因此,我必须找到Bean A中的每个依赖项,并分别模拟这些依赖项。
有没有一种方法可以一下子模拟spring bean和它的所有内部依赖关系?
发布于 2019-03-04 22:33:38
使用Bean A对代码进行单元测试所需的全部内容:
@Mock A a;对Bean A进行单元测试所需的所有内容:
@Mock B b;
@Mock C c;
A a = new A(b, c);为了使用spring-test进行测试,可以像这样设置测试配置:
@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);
}
}发布于 2019-03-04 22:40:03
如果你使用Mockito,你可以这样做:
@Mock
private BeanB beanB
@Mock
private BeanC beanC;
@InjectMock
private BeanA beanA;有两种方法可以让Mockito使用它:
你可以用注解你的测试类
@RunWith(MockitoJUnitRunner.class)第二个选项涉及调用
Mockito.initMock(this)在您的@Before方法中
https://stackoverflow.com/questions/54985072
复制相似问题