JUnit 5.x 知識點

出處:https://blinkfox.github.io/2018/11/15/hou-duan/java/dan-yuan-ce-shi-zhi-nan/#toc-heading-14

表面上來看,使用方式和 Junit4 差異不大,可是與 JUnit4 比較起來仍是有些不一樣的。java

  1. 導入測試測試註解(@Test)和斷言方法(assertEquals)的包路徑不一樣。
  2. 不須要手動把測試和測試方法聲明爲public了。

@Test: 表示該方法是一個測試方法。與JUnit 4的@Test註解不一樣的是,它沒有聲明任何屬性,由於JUnit Jupiter中的測試擴展是基於它們本身的專用註解來完成的。這樣的方法會被繼承,除非它們被覆蓋。git

出處:https://doczhcn.gitbook.io/junit5/index/index/what-is-junit-5

使用@Test,@TestTemplate,@RepeatedTest,@BeforeAll,@AfterAll,@BeforeEach或@AfterEach註解的方法不能有返回值。github

測試類和測試方法都沒必要是public。測試

若是您但願JUnit Jupiter在同一個測試實例上執行全部測試方法,只需使用@TestInstance(Lifecycle.PER_CLASS)對您的測試類進行註解便可。當使用這種模式時,每一個測試類將建立一個新的測試實例。所以,若是您的測試方法依賴於存儲在實例變量中的狀態,則可能須要在@BeforeEach或@AfterEach方法中重置該狀態。繼承

"per-class"模式比默認的"per-method"模式有一些額外的好處。具體來講,使用"per-class"模式,能夠在非靜態方法和接口默認方法上聲明@BeforeAll和@AfterAll。所以,"per-class"模式也能夠在@Nested測試類中使用@BeforeAll和@AfterAll方法。接口

相關文章
相關標籤/搜索