我使用JUnit 5和Spring Boot 2.5.2。现在我想写一个单元测试,不加载完整的应用程序上下文。因此,我这样注释我的测试:
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = {ConfigurationA.class})
class Test1{
...
}
在ConfigurationA中创建了Bean1。问题是ConfigurationA访问了一个ConfigurationB来创建Bean1,但是ConfigurationB是受保护的。
现在我得到以下错误:
在com.package.sample.config.ConfigurationA中定义名称为'Bean1'的bean创建错误:通过方法'createBean1'参数0表示不满意的依赖关系;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有com.package.sample.config.ConfigurationB类型的合格bean可用:期望至少有一个bean符合自动候选资格。依赖注释:{}
当我改变@ContextConfiguration…到@SpringBootTest,它工作,但整个上下文被加载。
是否有任何解决方案来加载不是整个上下文?
让ConfigurationA扩展ConfigurationB