Tungsten Fabric SDN — SmartNIC vRouter
979
2025-04-02
什么是 Junit5,在 Junit5 的官方介紹文檔中這寫到:
Junit5 由JUnit Platform + JUnit Jupiter + JUnit Vintage3部分構(gòu)成,借用 IBM Developer 的一張圖來說明 JUnit 5 的架構(gòu):
JUnit Platform:
JUnit Jupiter:
JUnit Vintage:
嵌套單元測試
Lambda支持
參數(shù)化測試
重復(fù)測試
動態(tài)測試
JUnit 4 與 JUnit 5 中的注解比較
1)創(chuàng)建 maven 工程 XUnit,pom.xml中添加Junit5的依賴。
2)其余的 XUnit 框架通用的設(shè)計(jì)運(yùn)行規(guī)則可參考:《如何利用 xUnit 框架對測試用例進(jìn)行維護(hù)》。
3)添加用例@Test,再在用例執(zhí)行前后添加@BeforeEach、@AfterEach:
運(yùn)行結(jié)果:
4)在測試類執(zhí)行前后添加@BeforeAll和@AfterAll:
測試結(jié)果:
5)在測試用例test1上加入注解@Disabled,使test1失效。
測試結(jié)果:
從測試結(jié)果中我們可以看到 test1 用例被 ignore,沒有被執(zhí)行。
6)分別將test1和test2用@DisplayName加上用例展示名稱。
測試結(jié)果:
7)對測試用例2加上注解@RepeatedTest,使其額外重復(fù)執(zhí)行3次:
測試結(jié)果:
從測試結(jié)果中我們可以看到測試用例2被額外重復(fù)執(zhí)行了3次
8)對于@Nested嵌套執(zhí)行舉例如下:
測試結(jié)果:
由測試結(jié)果可以看出,@Nested的執(zhí)行順序?yàn)橄葓?zhí)行@Nested嵌套外層的用例,再以倒敘形式執(zhí)行@Nested用例,然后再執(zhí)行第二層嵌套的用例:外層->倒敘嵌套->第二層嵌套。
@RunWith 是從Junit4遷移過來的,@RunWith 連同它的參數(shù) JUnitPlatform.class(一個基于 JUnit 4 且理解 JUnit Platform 的 Runner)讓您可以在 Eclipse 內(nèi)運(yùn)行 JUnit Jupiter 單元測試。Eclipse 尚未原生支持 JUnit 5。未來,Eclipse 將提供原生的 JUnit 5 支持,那時我們不再需要此注解;Junit5官方給出了替代它的注解:
有兩個包testcasedemo, junit5demo,利用 @RunWith+@SelectPackages 將包中測試類依次運(yùn)行。
套件類:
測試結(jié)果:
@RunWith+@SelectPackages+@IncludePackages配合使用過濾出需要執(zhí)行的測試包testcasedemo.demo2。
套件類:
測試結(jié)果:
@RunWith+@SelectPackages+@ExcludePackages配合使用過濾出不需要執(zhí)行的測試包testcasedemo.demo2。
套件類:
測試結(jié)果:
將 junit5demo 包下的 TestJunit5demo 和 testcasedemo.demo2 所有測試類過濾出來并執(zhí)行。
套件類:
測試結(jié)果:
在testcasedemo.demo2.TestDemo2的方法testDemo2上加上注解@Tag:
過濾并執(zhí)行方法testDemo2:
套件類:
測試結(jié)果:
Junit5官網(wǎng):
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
junit
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。