BeforeTestExecutionCallback

BeforeTestExecutionCallback

我找不到任何资源来解释JUnit Jupiter扩展模型中BeforeEachCallbackBeforeTestExecutionCallback之间的确切区别。 (我当然也对“After”变量感兴趣)

据我了解,以下时间表描述了正在发生的事情:
BeforeEach-BeforeTestExecution-Actual execution of the test-AfterTestExecution-AfterEach
我认为BeforeTestExecution存在,因此您可以在所有BeforeEach回调都已处理完之后但在实际测试执行之前执行代码。但是,这对我来说仍然不清楚,因为每个人都可以只使用BeforeTestExecution而不是BeforeEach,并且这些回调的执行顺序还是随机的。

那么BeforeTestExecution的确切含义是什么?如果同时在多个扩展中使用此回调,会发生什么情况?

最佳答案

Javadocs(herehere)之间没有明确区分,但JUnit5 docs包括以下内容:

BeforeTestExecutionCallbackAfterTestExecutionCallback定义了用于扩展的API,这些API希望添加将在执行测试方法之前和之后立即执行的行为。因此,这些回调非常适合计时,跟踪和类似的用例。如果您需要实现围绕@BeforeEach@AfterEach方法调用的回调,请改为实现BeforeEachCallbackAfterEachCallback

因此,如果您只想将包装为而不进行任何设置就进行测试执行,请使用BeforeTestExecutionCallback。文档继续建议计时和记录测试执行,作为BeforeTestExecutionCallback的可能用例。

07-26 02:24