此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cn

上下文管理

每个都为测试实例提供上下文管理和缓存支持 它负责。测试实例不会自动获得对 配置。但是,如果测试类实现接口,则会提供对 添加到测试实例中。请注意,并实现 and,因此, 提供对 自动.TestContextApplicationContextApplicationContextAwareApplicationContextAbstractJUnit4SpringContextTestsAbstractTestNGSpringContextTestsApplicationContextAwareApplicationContextspring-doc.cn

@Autowired ApplicationContext

作为实现接口的替代方法,你可以将 测试类的应用程序上下文,通过 Field 或 setter 方法,如下例所示:ApplicationContextAware@Autowiredspring-doc.cn

@SpringJUnitConfig
class MyTest {

	@Autowired (1)
	ApplicationContext applicationContext;

	// class body...
}
1 注入 .ApplicationContext
@SpringJUnitConfig
class MyTest {

	@Autowired (1)
	lateinit var applicationContext: ApplicationContext

	// class body...
}
1 注入 .ApplicationContext

同样,如果您的测试配置为加载 ,则可以将 Web 应用程序上下文添加到测试中,如下所示:WebApplicationContextspring-doc.cn

@SpringJUnitWebConfig (1)
class MyWebAppTest {

	@Autowired (2)
	WebApplicationContext wac;

	// class body...
}
1 配置 .WebApplicationContext
2 注入 .WebApplicationContext
@SpringJUnitWebConfig (1)
class MyWebAppTest {

	@Autowired (2)
	lateinit var wac: WebApplicationContext
	// class body...
}
1 配置 .WebApplicationContext
2 注入 .WebApplicationContext

using 的依赖注入由 提供,默认情况下已配置 (参见 Dependency Injection of Test Fixtures)。@AutowiredDependencyInjectionTestExecutionListenerspring-doc.cn

使用 TestContext 框架的测试类不需要扩展任何特定的 类或实现特定接口来配置其应用程序上下文。相反 配置是通过在 类级别。如果您的测试类未显式声明应用程序上下文资源 locations 或组件类,则 configured 决定了如何加载 context 从默认位置或默认配置类。除了上下文 资源位置和组件类,也可以配置应用程序上下文 通过 Application Context Initializers 进行初始化。@ContextConfigurationContextLoaderspring-doc.cn

以下部分解释了如何使用 Spring 的注解来 使用 XML 配置文件、Groovy 脚本、 组件类(通常是 Classes)或上下文初始值设定项。 或者,您可以实现和配置自己的自定义 高级用例。@ContextConfigurationApplicationContext@ConfigurationSmartContextLoaderspring-doc.cn