|
对于最新的稳定版本,请使用 Spring Framework 6.2.10! |
关键抽象
该框架的核心包括TestContextManagerclass 和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取代
原始最小ContextLoaderSPI.具体来说,一个SmartContextLoader可以选择
进程资源位置、组件类或上下文初始值设定项。此外,一个SmartContextLoader可以在
它加载的上下文。
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 资源 地点。