如何添加具有访问属性的受保护配置到Spring引导测试上下文?



我使用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

最新更新