Test Execution Events
Spring Framework 5.2 中引入的 EventPublishingTestExecutionListener
提供了一种替代方法来实现自定义 TestExecutionListener
。测试的 ApplicationContext
中的组件可以监听 EventPublishingTestExecutionListener
发布的以下事件,每个事件对应于 TestExecutionListener
API 中的方法。
-
BeforeTestClassEvent
-
PrepareTestInstanceEvent
-
BeforeTestMethodEvent
-
BeforeTestExecutionEvent
-
AfterTestExecutionEvent
-
AfterTestMethodEvent
-
AfterTestClassEvent
这些事件可以出于各种原因进行监听,例如重置模拟 bean 或跟踪测试执行。监听测试执行事件而不是实现自定义 TestExecutionListener
的一个优势在于,测试执行事件可以被测试 ApplicationContext
中注册的任何 Spring bean 监听,并且这些 bean 可以直接受益于依赖项注入和 ApplicationContext
的其他功能。相反,TestExecutionListener
不是 ApplicationContext
中的 bean。
默认情况下会注册 |
为了监听测试执行事件,Spring bean 可能会选择实现`org.springframework.context.ApplicationListener` 接口。或者,可以使用 @EventListener
对侦听器方法进行注释,并将其配置为侦听上述具体事件类型之一(见Annotation-based Event Listeners)。由于这种方法很流行,Spring 提供了以下专用的`@EventListener` 注释,以简化测试执行事件侦听器的注册。这些注释位于 `org.springframework.test.context.event.annotation`包中。
-
@BeforeTestClass
-
@PrepareTestInstance
-
@BeforeTestMethod
-
@BeforeTestExecution
-
@AfterTestExecution
-
@AfterTestMethod
-
@AfterTestClass