繁体   English   中英

JUnit 5:BeforeEachCallback和BeforeTestExecutionCallback之间的区别

[英]JUnit 5: Difference between BeforeEachCallback and BeforeTestExecutionCallback

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

据我了解,以下时间表描述了正在发生的事情:

BeforeEach - BeforeTestExecution - Actual execution of the test - AfterTestExecution - AfterEach

我认为BeforeTestExecution存在,所以你可以在所有BeforeEach回调被处理之后但在实际测试执行之前执行代码。 但是我仍然不清楚这一点,因为每个人都可以使用BeforeTestExecution而不是BeforeEach并且这些回调的执行顺序也是随机的。

那么什么是BeforeTestExecution ,如果你同时在多个扩展中使用这个回调会发生什么?

Javadocs( 这里这里 )没有明确区分它们,但JUnit5文档包括以下内容:

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

因此,如果您想在没有任何设置的情况下包装测试执行,那么请使用BeforeTestExecutionCallback 文档继续建议计时和日志测试执行作为BeforeTestExecutionCallback可能用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM