为什么在src/test中更喜欢@TestConfiguration而不是@Configuration

问题描述 投票:0回答:1

我目前正在深入研究@TestConfiguration 我想知道为什么使用这个组合..

@TestConfiguration
public class TestConfig {
    
    // some bean definitions 

然后使用

@SpringBootTest
@Import(TestConfig.class)
class UsingImport {

@Autowired
ConfigBean configBean;

// some code 

并且在 src/test 中不使用经典的@Configuration, 因为这样做是完全合法的。 为什么@TestConfiguration的真正目的是,因为我们可以用@Configuration做同样的事情?

我错了吗?

spring testing spring-annotations
1个回答
0
投票

@TestConfiguration
和常规
@Configuration
之间的主要区别在于,不会引发默认应用程序上下文。这意味着所有必需的 bean 都可以放置在用
@TestConfiguration
注释的单独类中,并使用此配置而不是标准配置,这将显着减少测试执行时间,因为应用程序上下文仅包含特定测试所需的 bean

标有常用

@Configuration
注释的类会自动包含在应用程序上下文中,因为扫描可以识别此注释。而标有
@TestConfiguration
的类不受扫描影响,您必须手动导入每个测试的配置,从而使您可以灵活地控制该测试所需的 bean 数量

© www.soinside.com 2019 - 2024. All rights reserved.