@Before, @BeforeClass, @BeforeEach 和 @BeforeAll之間的不同


不同注解的區別如下:

特性

Junit 4 Junit 5
  • 在當前類的所有測試方法之前執行。
  • 注解在靜態方法上。
  • 此方法可以包含一些初始化代碼。
@BeforeClass @BeforeAll
  • 在當前類中的所有測試方法之后執行。
  • 注解在靜態方法上。
  • 此方法可以包含一些清理代碼。
@AfterClass @AfterAll
  • 在每個測試方法之前執行。
  • 注解在非靜態方法上。
  • 可以重新初始化測試方法所需要使用的類的某些屬性。
@Before @BeforeEach
  • 在每個測試方法之后執行。
  • 注解在非靜態方法上。
  • 可以回滾測試方法引起的數據庫修改。
@After

@AfterEach

 

 

 

 

 

 

 

 

 

 

 

 

 

標記的代碼@Before在每次測試之前執行,而@BeforeClass在整個測試夾具之前運行一次。如果你的測試類有十個測試,則@Before代碼將執行十次,但@BeforeClass僅執行一次。

通常,@BeforeClass當多個測試需要共享相同的計算昂貴的設置代碼時,可以使用。建立數據庫連接屬於此類。你可以將代碼從@BeforeClass移到@Before,但是測試運行可能需要更長的時間。注意,標記的代碼@BeforeClass作為靜態初始化程序運行,因此它將在創建測試夾具的類實例之前運行。

在JUnit 5中,標記@BeforeEach和與JUnit 4中@BeforeAll@Before和等效。@BeforeClass它們的名稱更能指示它們的運行時間,並且松散地解釋為:“在每個測試之前”和“一次在所有測試之前”。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM