对于最新的稳定版本,请使用 Spring Framework 6.2.0spring-doc.cn

关键抽象

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

TestContext

TestContext封装运行测试的上下文(与 实际测试框架),并为 它负责的 test 实例。该 还委托给 a 以加载 if requested.TestContextSmartContextLoaderApplicationContextspring-doc.cn

TestContextManager

TestContextManager是 Spring TestContext 框架的主要入口点,并且是 负责管理在明确定义的测试执行点注册的每个事件并向他们发送信号:TestContextTestExecutionListenerspring-doc.cn

  • 在特定测试框架的任何 “before class” 或 “before all” 方法之前。spring-doc.cn

  • 测试实例后处理。spring-doc.cn

  • 在特定测试框架的任何 “before” 或 “before each” 方法之前。spring-doc.cn

  • 在执行测试方法之前,但在测试设置之后。spring-doc.cn

  • 在执行测试方法之后但在测试拆除之前立即。spring-doc.cn

  • 在特定测试框架的任何 “after” 或 “after each” 方法之后。spring-doc.cn

  • 在特定测试框架的任何 “after class” 或 “after all” 方法之后。spring-doc.cn

TestExecutionListener

TestExecutionListener定义用于响应 侦听器注册到的 。请参阅 TestExecutionListener 配置TestContextManagerspring-doc.cn

上下文加载器

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

SmartContextLoader是接口的扩展,它取代了 原始的最小 SPI。具体来说,可以选择 进程资源位置、组件类或上下文初始值设定项。此外,可以在 它加载的上下文。ContextLoaderContextLoaderSmartContextLoaderSmartContextLoaderspring-doc.cn

Spring 提供了以下实现:spring-doc.cn

  • DelegatingSmartContextLoader:两个默认加载器之一,它在内部委托给 an 、 a 或 a ,具体取决于为 test 类或是否存在 default locations 或 default configuration 类。 仅当 Groovy 位于 Classpath 上时,才会启用 Groovy 支持。AnnotationConfigContextLoaderGenericXmlContextLoaderGenericGroovyXmlContextLoaderspring-doc.cn

  • WebDelegatingSmartContextLoader:两个默认加载器之一,它在内部委托 更改为 、 a 或 a ,具体取决于为 测试类或存在 default locations 或 default configuration 类。仅当 Web 位于 test 类。仅当 Groovy 位于 Classpath 上时,才会启用 Groovy 支持。AnnotationConfigWebContextLoaderGenericXmlWebContextLoaderGenericGroovyXmlWebContextLoaderContextLoader@WebAppConfigurationspring-doc.cn

  • AnnotationConfigContextLoader:从零部件加载标准 类。ApplicationContextspring-doc.cn

  • AnnotationConfigWebContextLoader:加载 from 组件 类。WebApplicationContextspring-doc.cn

  • GenericGroovyXmlContextLoader:从资源加载标准 位置,可以是 Groovy 脚本或 XML 配置文件。ApplicationContextspring-doc.cn

  • GenericGroovyXmlWebContextLoader:加载 from 资源 位置,可以是 Groovy 脚本或 XML 配置文件。WebApplicationContextspring-doc.cn

  • GenericXmlContextLoader:从 XML 资源加载标准 地点。ApplicationContextspring-doc.cn

  • GenericXmlWebContextLoader:加载 from XML 资源 地点。WebApplicationContextspring-doc.cn