[英]JUnit 5: Difference between BeforeEachCallback and BeforeTestExecutionCallback
我找不到任何资源来解释JUnit Jupiter扩展模型中BeforeEachCallback
和BeforeTestExecutionCallback
之间究竟有什么区别。 (我当然也对“After” - 变量感兴趣)
据我了解,以下时间表描述了正在发生的事情:
BeforeEach
- BeforeTestExecution
- Actual execution of the test
- AfterTestExecution
- AfterEach
我认为BeforeTestExecution
存在,所以你可以在所有BeforeEach
回调被处理之后但在实际测试执行之前执行代码。 但是我仍然不清楚这一点,因为每个人都可以使用BeforeTestExecution
而不是BeforeEach
并且这些回调的执行顺序也是随机的。
那么什么是BeforeTestExecution
,如果你同时在多个扩展中使用这个回调会发生什么?
Javadocs( 这里和这里 )没有明确区分它们,但JUnit5文档包括以下内容:
BeforeTestExecutionCallback
和AfterTestExecutionCallback
为希望添加将在执行测试方法之前和之后立即执行的行为的Extensions定义API。 因此,这些回调非常适合于计时,跟踪和类似的用例。 如果需要实现围绕@BeforeEach
和@AfterEach
方法调用的回调,AfterEachCallback
改为实现BeforeEachCallback
和AfterEachCallback
。
因此,如果您想在没有任何设置的情况下仅包装测试执行,那么请使用BeforeTestExecutionCallback
。 文档继续建议计时和日志测试执行作为BeforeTestExecutionCallback
可能用例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.