簡體   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