最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Junit 5中@ParameterizedTest與@EnumSource結(jié)合使用

 更新時(shí)間:2018年12月06日 16:21:34   作者:Sam哥哥  
今天小編就為大家分享一篇關(guān)于Junit 5中@ParameterizedTest與@EnumSource結(jié)合使用,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

概述

有時(shí)候業(yè)務(wù)代碼里會根據(jù)一個(gè)枚舉值來區(qū)分業(yè)務(wù)場景,比如說:

public enum ActivityLimitEnum {
  LIMIT(1,"封頂"),
  UNLIMIT(0,"上不封頂");
}

如果編寫單元測試來驗(yàn)證業(yè)務(wù)代碼,至少需要寫兩個(gè)測試方法,一個(gè)驗(yàn)收封頂邏輯,一個(gè)驗(yàn)收不封頂邏輯。

@Test
  @DisplayName("封頂")
  void testLimit() {
  }
  @Test
  @DisplayName("不封頂")
  void testUnLimit() {
  }

由于這兩個(gè)場景只是區(qū)分封頂和不封頂,其他的都是一樣的,如果寫兩個(gè)測試方法,testLimittestUnLimit方法里會有很多重復(fù)代碼。這個(gè)時(shí)候Junit 5 @ParameterizedTest@EnumSource就可以派上用場了。

  @ParameterizedTest
  @EnumSource(ActivityLimitEnum.class)
  @DisplayName("封頂和不封頂")
  void test(ActivityLimitEnum activityLimitEnum) {
    if (ActivityLimitEnum.LIMIT.equals(activityLimitEnum)) {
      assertFalse(false);
    } 
    else if (ActivityLimitEnum.UNLIMIT.equals(activityLimitEnum)) {
      assertTrue(true);
    }
  }

Junit 5在執(zhí)行上面的test方法的時(shí)候,由于ActivityLimitEnum中有LIMITUNLIMIT兩個(gè)枚舉,先按照LIMIT類型執(zhí)行一次test方法,再按照UNLIMIT類型再次執(zhí)行test方法,共執(zhí)行兩次test方法,因此我們需要在test方法里,區(qū)分一下類型,按照實(shí)際情況編寫assert代碼進(jìn)行驗(yàn)證即可。

我們用Intellij IDEA執(zhí)行上面的單元測試,效果如下:

可以看到test方法確實(shí)執(zhí)行了兩次,LIMITUNLIMIT各執(zhí)行一次。

如果枚舉中的枚舉值非常多,而單元測試?yán)镏皇窍腧?yàn)證其中部分枚舉值,那可以用下面的方式:

  @ParameterizedTest
  @EnumSource(value = ActivityLimitEnum.class,names = {"LIMIT"})
  @DisplayName("封頂和不封頂")
  void test(ActivityLimitEnum activityLimitEnum) {
    if (ActivityLimitEnum.LIMIT.equals(activityLimitEnum)) {
      assertFalse(false);
    }
    else if (ActivityLimitEnum.UNLIMIT.equals(activityLimitEnum)) {
      assertTrue(true);
    }
  }

這樣就只會執(zhí)行LIMIT枚舉值對應(yīng)的場景。

如果要在Junit 5里使用@ParameterizedTest@EnumSource,需要添加如下依賴:

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-params</artifactId>
  <version>5.2.0</version>
  <scope>test</scope>
</dependency>

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Java并發(fā)編程必備之Synchronized關(guān)鍵字深入解析

    Java并發(fā)編程必備之Synchronized關(guān)鍵字深入解析

    本文我們深入探索了Java中的Synchronized關(guān)鍵字,包括其互斥性和可重入性的特性,文章詳細(xì)介紹了Synchronized的三種使用方式:修飾代碼塊、修飾普通方法和修飾靜態(tài)方法,感興趣的朋友一起看看吧
    2025-04-04
  • 手把手教你用Java給暗戀對象發(fā)送一份表白郵件

    手把手教你用Java給暗戀對象發(fā)送一份表白郵件

    隨著我們學(xué)習(xí)java的深入,也漸漸發(fā)現(xiàn)了它的一些樂趣,比如發(fā)送郵件,下面這篇文章主要給大家介紹了關(guān)于如何利用Java給暗戀對象發(fā)送一份表白郵件的相關(guān)資料,需要的朋友可以參考下
    2021-11-11
  • java return用法實(shí)例詳解

    java return用法實(shí)例詳解

    在本篇文章里小編給大家整理的是關(guān)于java return用法以及相關(guān)知識點(diǎn)總結(jié),需要的朋友們參考下。
    2019-08-08
  • MyBatis中調(diào)用存儲過程和函數(shù)的實(shí)現(xiàn)示例

    MyBatis中調(diào)用存儲過程和函數(shù)的實(shí)現(xiàn)示例

    在MyBatis中調(diào)用存儲過程和函數(shù)是一個(gè)相對高級的特性,本文主要介紹了MyBatis中調(diào)用存儲過程和函數(shù)的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-07-07
  • Maven打包JavaWeb項(xiàng)目的兩種實(shí)現(xiàn)方式

    Maven打包JavaWeb項(xiàng)目的兩種實(shí)現(xiàn)方式

    介紹了兩種Maven打包Web項(xiàng)目的方式:通過Eclipse和通過命令行,Eclipse方式包括清理、打包、跳過測試、輸入?Goals?等步驟,命令行方式包括進(jìn)入項(xiàng)目目錄、執(zhí)行?clean?和?package?命令、跳過測試等步驟,注意事項(xiàng)包括確保有JDK環(huán)境、正確配置pom.xml文件和修改版本號
    2025-02-02
  • Java日期格式化如何避免YYYY引發(fā)的時(shí)間異常

    Java日期格式化如何避免YYYY引發(fā)的時(shí)間異常

    在編程中,日期格式化是一個(gè)常見的任務(wù),使用不同的格式化選項(xiàng)可能會導(dǎo)致一些意外的結(jié)果,下面我們就來學(xué)習(xí)一下Java如何避免YYYY引發(fā)的時(shí)間異常吧
    2023-11-11
  • Java后端Cookie實(shí)現(xiàn)(時(shí)間戳)代碼實(shí)例

    Java后端Cookie實(shí)現(xiàn)(時(shí)間戳)代碼實(shí)例

    這篇文章主要介紹了Java后端Cookie實(shí)現(xiàn)(時(shí)間戳)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • java如何使用fastjson修改多層嵌套的Objectjson數(shù)據(jù)

    java如何使用fastjson修改多層嵌套的Objectjson數(shù)據(jù)

    這篇文章主要介紹了java如何使用fastjson修改多層嵌套的Objectjson數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 攔截JSP頁面,校驗(yàn)是否已登錄詳解及實(shí)現(xiàn)代碼

    攔截JSP頁面,校驗(yàn)是否已登錄詳解及實(shí)現(xiàn)代碼

    這篇文章主要介紹了攔截JSP頁面,校驗(yàn)是否已登錄詳解及實(shí)現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • Java數(shù)組高級算法與Arrays類常見操作小結(jié)【排序、查找】

    Java數(shù)組高級算法與Arrays類常見操作小結(jié)【排序、查找】

    這篇文章主要介紹了Java數(shù)組高級算法與Arrays類常見操作,結(jié)合實(shí)例形式總結(jié)分析了Java數(shù)組常見的排序算法、查找算法相關(guān)原理、實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2019-03-03

最新評論

邵东县| 延川县| 泰顺县| 莎车县| 固始县| 廉江市| 太仓市| 方城县| 黔东| 上犹县| 禄劝| 杂多县| 都匀市| 石屏县| 洪泽县| 东乌珠穆沁旗| 信宜市| 卫辉市| 元氏县| 策勒县| 衡山县| 枞阳县| 商南县| 桦甸市| 贵南县| 沙田区| 大余县| 环江| 台中县| 瑞昌市| 辽源市| 新乡县| 武功县| 太仆寺旗| 乐都县| 江陵县| 徐汇区| 孙吴县| 稻城县| 安平县| 淮南市|