框架的核心由类和 、 和 接口组成。为每个测试类创建一个 (例如,用于执行 JUnit Jupiter 中单个测试类中的所有测试方法)。这 反过来,管理保存当前测试上下文的 A。随着测试的进行,还会更新状态 和实施的委托,这些实现将实际 通过提供依赖注入、管理事务等来测试执行。A 负责为给定测试加载 类。请参阅 javadoc 和 Spring 测试套件,提供更多信息和各种实现示例。TestContextManagerTestContextTestExecutionListenerSmartContextLoaderTestContextManagerTestContextManagerTestContextTestContextManagerTestContextTestExecutionListenerSmartContextLoaderApplicationContext

TestContext

TestContext封装运行测试的上下文(与 实际测试框架正在使用中),并提供上下文管理和缓存支持 它负责的测试实例。如果请求,还会委托给 a 以加载 an。TestContextSmartContextLoaderApplicationContext

TestContextManager

TestContextManager是 Spring TestContext 框架的主要入口点,并且是 负责管理单个事件,并向在明确定义的测试执行点注册的每个事件发出信号:TestContextTestExecutionListener

  • 在特定测试框架的任何“课前”或“先于所有”方法之前。

  • 测试实例后处理。

  • 在特定测试框架的任何“之前”或“之前”方法之前。

  • 在测试方法执行之前,但在测试设置之后。

  • 在执行测试方法后立即但在测试拆卸之前。

  • 在特定测试框架的任何“之后”或“之后”方法之后。

  • 在特定测试框架的任何“课后”或“毕竟”方法之后。

TestExecutionListener

TestExecutionListener定义用于对 向其注册侦听器的对象。请参阅 TestExecutionListener 配置TestContextManager

上下文加载程序

ContextLoader是一个策略接口,用于加载 for 由 Spring TestContext 框架管理的集成测试。你应该实现而不是这个接口来提供对组件类的支持, 活动 Bean 定义配置文件、测试属性源、上下文层次结构和支持。ApplicationContextSmartContextLoaderWebApplicationContext

SmartContextLoader是取代 原始最小 SPI。具体来说,可以选择 处理资源位置、组件类或上下文初始值设定项。此外,还可以设置活动 Bean 定义配置文件并测试属性源 它加载的上下文。ContextLoaderContextLoaderSmartContextLoaderSmartContextLoader

Spring 提供了以下实现:

  • DelegatingSmartContextLoader:两个默认加载程序之一,它在内部委托给 an , a 或 a ,取决于为 测试类或存在默认位置或默认配置类。 仅当 Groovy 位于类路径上时,才会启用 Groovy 支持。AnnotationConfigContextLoaderGenericXmlContextLoaderGenericGroovyXmlContextLoader

  • WebDelegatingSmartContextLoader:两个默认加载程序之一,它在内部委托 更改为 、 a 或 a ,具体取决于声明的配置 测试类或存在默认位置或默认配置 类。仅当 Web 上存在时,才使用 Web 测试类。仅当 Groovy 位于类路径上时,才会启用 Groovy 支持。AnnotationConfigWebContextLoaderGenericXmlWebContextLoaderGenericGroovyXmlWebContextLoaderContextLoader@WebAppConfiguration

  • AnnotationConfigContextLoader:从组件加载标准 类。ApplicationContext

  • AnnotationConfigWebContextLoader:从组件加载 类。WebApplicationContext

  • GenericGroovyXmlContextLoader:从资源加载标准 Groovy 脚本或 XML 配置文件的位置。ApplicationContext

  • GenericGroovyXmlWebContextLoader:从资源加载 Groovy 脚本或 XML 配置文件的位置。WebApplicationContext

  • GenericXmlContextLoader:从 XML 资源加载标准 地点。ApplicationContext

  • GenericXmlWebContextLoader:从 XML 资源加载 地点。WebApplicationContext