[英]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.