不同注解的區別如下:
| 特性 |
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它們的名稱更能指示它們的運行時間,並且松散地解釋為:“在每個測試之前”和“一次在所有測試之前”。
