Linux-ls-cp-tr-命令拓展及萬用字元
什麼是 Junit5,在 Junit5 的官方介紹文件中這寫到:
Junit5 由JUnit Platform + JUnit Jupiter + JUnit Vintage3部分構成,借用 IBM Developer 的一張圖來說明 JUnit 5 的架構:
JUnit Platform:
JUnit Jupiter:
JUnit Vintage:
-
巢狀單元測試
-
Lambda支援
-
引數化測試
-
重複測試
-
動態測試
JUnit 4 與 JUnit 5 中的註解比較 -
1)建立 maven 工程 XUnit,pom.xml中新增Junit5的依賴。
-
2)其餘的 XUnit 框架通用的設計執行規則可參考:《如何利用 xUnit 框架對測試用例進行維護》。
-
3)新增用例@Test,再在用例執行前後新增@BeforeEach、@AfterEach:
-
執行結果:
-
4)在測試類執行前後新增@BeforeAll和@AfterAll:
-
測試結果:
-
5)在測試用例test1上加入註解@Disabled,使test1失效。
-
測試結果:
-
從測試結果中我們可以看到 test1 用例被 ignore,沒有被執行。
-
6)分別將test1和test2用@DisplayName加上用例展示名稱。
-
測試結果:
-
7)對測試用例2加上註解@RepeatedTest,使其額外重複執行3次:
-
測試結果:
-
從測試結果中我們可以看到測試用例2被額外重複執行了3次
-
8)對於@Nested巢狀執行舉例如下:
-
測試結果:
-
由測試結果可以看出,@Nested的執行順序為先執行@Nested巢狀外層的用例,再以倒敘形式執行@Nested用例,然後再執行第二層巢狀的用例:外層->倒敘巢狀->第二層巢狀。
@RunWith 是從Junit4遷移過來的,@RunWith 連同它的引數 JUnitPlatform.class(一個基於 JUnit 4 且理解 JUnit Platform 的 Runner)讓您可以在 Eclipse 內執行 JUnit Jupiter 單元測試。Eclipse 尚未原生支援 JUnit 5。未來,Eclipse 將提供原生的 JUnit 5 支援,那時我們不再需要此註解;Junit5官方給出了替代它的註解:
- 有兩個包testcasedemo, junit5demo,利用 @RunWith+@SelectPackages 將包中測試類依次執行。
套件類:
測試結果: - @RunWith+@SelectPackages+@IncludePackages配合使用過濾出需要執行的測試包testcasedemo.demo2。
套件類:
測試結果: - @RunWith+@SelectPackages+@ExcludePackages配合使用過濾出不需要執行的測試包testcasedemo.demo2。
套件類:
測試結果: - 將 junit5demo 包下的 TestJunit5demo 和 testcasedemo.demo2 所有測試類過濾出來並執行。
套件類:
測試結果:
在testcasedemo.demo2.TestDemo2的方法testDemo2上加上註解@Tag:
過濾並執行方法testDemo2:
套件類:
測試結果:
Junit5官網: -
https://junit.org/junit5/docs/current/user-guide/#overview
IBM Developer: - https://www.ibm.com/developerworks/cn/java/j-introducing-junit5-part1-jupiter-api/index.html
- https://www.ibm.com/developerworks/cn/java/j-junit5/index.html
Junit5 在特性上已經超越 TestNG 了,會成為未來 Java 屆的首選測試框架。霍格沃茲測試學院已經教學生使用這個框架,效果很好。推薦學習業界最具深度、最貼近大廠一線實踐的《測試開發從入門到高階實戰系統進階》課程。
4 個月由淺入深,強化集訓,測試大咖思寒領銜主講,授之以漁,通過 10+ 企業級專案實戰演練,帶你一站式掌握 BAT 測試開發工程師必備核心技能(對標阿里巴巴P6+,挑戰年薪50W+)!學員直推 BAT 名企測試經理,普遍漲薪 50%+!
提升自己的核心競爭力吧
原文連結