Junit5 架構(gòu)、新特性及基本使用(常用注解與套件執(zhí)行)

      網(wǎng)友投稿 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é)果:

      Junit5 架構(gòu)、新特性及基本使用(常用注解與套件執(zhí)行)

      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)容。

      上一篇:7.6 Linux提取RPM包
      下一篇:Flume 應(yīng)用場景及架構(gòu)原理
      相關(guān)文章
      国产精品亚洲一区二区三区在线 | 亚洲av片在线观看| 亚洲综合成人网在线观看| 久久亚洲AV午夜福利精品一区| 亚洲午夜精品第一区二区8050| 国产精品亚洲精品日韩电影| 国产精品亚洲精品日韩电影| 亚洲av日韩片在线观看| 亚洲国产成人影院播放| 亚洲国产精品无码久久九九| 亚洲免费无码在线| 国产啪亚洲国产精品无码| 综合亚洲伊人午夜网| 亚洲欧洲国产精品香蕉网| 亚洲乳大丰满中文字幕| 亚洲国产精品无码成人片久久| 亚洲国产成人高清在线观看 | 亚洲一线产品二线产品| 亚洲精品国产高清在线观看| 亚洲AV无码精品国产成人| 337P日本欧洲亚洲大胆精品| 亚洲成AV人在线观看网址| 中文字幕亚洲无线码| 亚洲国产精品一区二区成人片国内| 亚洲国产精品嫩草影院在线观看| 亚洲2022国产成人精品无码区| 337p日本欧洲亚洲大胆色噜噜| 亚洲日本在线免费观看| 狠狠色伊人亚洲综合网站色 | 精品亚洲国产成人av| 亚洲成?v人片天堂网无码| 国产精品亚洲w码日韩中文| 亚洲狠狠婷婷综合久久久久| 亚洲av日韩av高潮潮喷无码| 2022年亚洲午夜一区二区福利 | 亚洲粉嫩美白在线| 国产成人精品亚洲一区| 91麻豆精品国产自产在线观看亚洲 | 亚洲精品日韩一区二区小说| 亚洲AV无码之日韩精品| 亚洲精品白浆高清久久久久久|