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