我想在Spring Boot应用程序中执行单个服务的集成测试。所以我想只将这个服务和它的依赖项添加到测试应用程序上下文中。
假设我在不同的包中有两个类A
和B
(A
有B
的引用),标有@Component
注释。当我运行应用程序时,@SpringBootApplication
找到我的所有bean并将它们添加到隐式@ComponentScan
的上下文中。
在我的测试配置中,我想只指定一个类A
并使Spring Boot解析它的依赖项(B
)并将其添加到上下文中。
使用Spring Boot 2或者对我来说最合适的选项是否可以创建一个单独的@Configuration
,其中显式声明了所需的类? (实际上有两个以上,这就是我要问的原因)
答案 0 :(得分:2)
在我的测试配置中,我想只指定一个类
A
并使Spring Boot解决它的依赖关系(B
)并将其添加到上下文中。
不,遗憾的是,由于Spring不知道如何找到依赖项和/或您真正想要的具体类型,因此不可能。
对于我来说,使用Spring Boot 2或最合适的选项是否可以创建一个单独的
@Configuration
,其中包含明确声明的必需类?
是的,您可以仅为此目的申报专用测试@Configuration
课程;但是,您可能会发现在测试类中简单地重用 common 配置类集更有利,以便从 Spring TestContext Framework 中的上下文缓存支持中受益。