上下文管理
每个 TestContext
为其负责的测试实例提供上下文管理和缓存支持。测试实例不会自动获得对配置的 ApplicationContext
的访问权限。但是,如果测试类实现了 ApplicationContextAware
接口,则会将 ApplicationContext
的引用提供给测试实例。请注意,AbstractJUnit4SpringContextTests
和 AbstractTestNGSpringContextTests
实现了 ApplicationContextAware
,因此会自动提供对 ApplicationContext
的访问权限。
@Autowired ApplicationContext
作为实现
同样,如果您的测试配置为加载
使用 |
使用 TestContext 框架的测试类不需要扩展任何特定类或实现特定接口来配置其应用上下文。相反,配置是通过在类级别声明 @ContextConfiguration
注解来实现的。如果您的测试类没有显式声明应用上下文资源位置或组件类,则配置的 ContextLoader
会决定如何从默认位置或默认配置类加载上下文。除了上下文资源位置和组件类之外,应用上下文还可以通过应用上下文初始化器进行配置。
以下部分解释了如何使用 Spring 的 @ContextConfiguration
注解,通过 XML 配置文件、Groovy 脚本、组件类(通常是 @Configuration
类)或上下文初始化器来配置测试 ApplicationContext
。或者,对于高级用例,您可以实现和配置自己的自定义 SmartContextLoader
。