此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
关键抽象
该框架的核心包括TestContextManager
class 和TestContext
,TestExecutionListener
和SmartContextLoader
接口。 一个TestContextManager
为每个测试类创建(例如,用于执行JUnit Jupiter 中单个测试类中的所有测试方法)。 这TestContextManager
, 反过来,管理一个TestContext
它包含当前测试的上下文。 这TestContextManager
还会更新TestContext
随着测试的进行并将委托给TestExecutionListener
实现,它通过提供依赖注入、管理事务等来检测实际的测试执行。 一个SmartContextLoader
负责加载ApplicationContext
对于给定的测试 类。 请参阅 javadoc 和Spring 测试套件,了解更多信息和各种实现的示例。
TestContext
TestContext
封装运行测试的上下文(与实际使用的测试框架无关),并为它负责的测试实例提供上下文管理和缓存支持它负责的测试实例。 这TestContext
也委托给SmartContextLoader
加载ApplicationContext
如果需要。
TestContextManager
TestContextManager
是 Spring TestContext 框架的主要入口点,并且是负责管理单个TestContext
并向每个注册的事件发出信号TestExecutionListener
在定义明确的测试执行点:
-
在特定测试框架的任何“before class”或“before all”方法之前。
-
测试实例后处理。
-
在特定测试框架的任何“之前”或“之前”方法之前。
-
在执行测试方法之前,但在测试设置之后。
-
在执行测试方法后立即,但在测试拆除之前。
-
在特定测试框架的任何“之后”或“之后”方法之后。
-
在特定测试框架的任何“课后”或“毕竟”方法之后。
TestExecutionListener
TestExecutionListener
定义用于对 这TestContextManager
侦听器注册到的。 看TestExecutionListener
配置.
上下文加载器
ContextLoader
是一个策略接口,用于加载ApplicationContext
对于由 Spring TestContext 框架管理的集成测试。你应该实现SmartContextLoader
而不是此接口来提供对组件类的支持,活动 Bean 定义配置文件、测试属性源、上下文层次结构和WebApplicationContext
支持。
SmartContextLoader
是ContextLoader
取代原始最小值ContextLoader
SPI 的 SPI 中。具体来说,一个SmartContextLoader
可以选择处理资源位置、组件类或上下文初始值设定项。此外,一个SmartContextLoader
可以在它加载的上下文中设置活动 Bean 定义配置文件和测试属性源。
Spring 提供了以下实现:
-
DelegatingSmartContextLoader
:两个默认加载器之一,它在内部委托给 一AnnotationConfigContextLoader
一个GenericXmlContextLoader
或GenericGroovyXmlContextLoader
,取决于为test 类声明的配置,或者是否存在默认位置或默认配置类。仅当 Groovy 位于类路径上时,才会启用 Groovy 支持。 -
WebDelegatingSmartContextLoader
:两个默认加载器之一,它在内部委托到AnnotationConfigWebContextLoader
一个GenericXmlWebContextLoader
或GenericGroovyXmlWebContextLoader
,取决于声明的配置测试类或是否存在默认位置或默认配置 类。 一张网ContextLoader
仅在以下情况下使用@WebAppConfiguration
存在于test 类上。仅当 Groovy 位于类路径上时,才会启用 Groovy 支持。 -
AnnotationConfigContextLoader
:加载标准ApplicationContext
从组件 类。 -
AnnotationConfigWebContextLoader
:加载一个WebApplicationContext
从组件 类。 -
GenericGroovyXmlContextLoader
:加载标准ApplicationContext
来自资源 位置是 Groovy 脚本或 XML 配置文件。 -
GenericGroovyXmlWebContextLoader
:加载一个WebApplicationContext
来自资源 位置是 Groovy 脚本或 XML 配置文件。 -
GenericXmlContextLoader
:加载标准ApplicationContext
从 XML 资源 地点。 -
GenericXmlWebContextLoader
:加载一个WebApplicationContext
从 XML 资源 地点。