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

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

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

概述

有時(shí)候業(yè)務(wù)代碼里會(huì)根據(jù)一個(gè)枚舉值來(lái)區(qū)分業(yè)務(wù)場(chǎng)景,比如說(shuō):

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

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

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

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

  @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類(lèi)型執(zhí)行一次test方法,再按照UNLIMIT類(lèi)型再次執(zhí)行test方法,共執(zhí)行兩次test方法,因此我們需要在test方法里,區(qū)分一下類(lèi)型,按照實(shí)際情況編寫(xiě)assert代碼進(jìn)行驗(yàn)證即可。

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

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

如果枚舉中的枚舉值非常多,而單元測(cè)試?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);
    }
  }

這樣就只會(huì)執(zhí)行LIMIT枚舉值對(duì)應(yīng)的場(chǎ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é)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(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給暗戀對(duì)象發(fā)送一份表白郵件

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

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

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

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

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

    在MyBatis中調(diào)用存儲(chǔ)過(guò)程和函數(shù)是一個(gè)相對(duì)高級(jí)的特性,本文主要介紹了MyBatis中調(diào)用存儲(chǔ)過(guò)程和函數(shù)的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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)目的方式:通過(guò)Eclipse和通過(guò)命令行,Eclipse方式包括清理、打包、跳過(guò)測(cè)試、輸入?Goals?等步驟,命令行方式包括進(jìn)入項(xiàng)目目錄、執(zhí)行?clean?和?package?命令、跳過(guò)測(cè)試等步驟,注意事項(xiàng)包括確保有JDK環(huán)境、正確配置pom.xml文件和修改版本號(hào)
    2025-02-02
  • Java日期格式化如何避免YYYY引發(fā)的時(shí)間異常

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

    在編程中,日期格式化是一個(gè)常見(jiàn)的任務(wù),使用不同的格式化選項(xiàng)可能會(huì)導(dǎo)致一些意外的結(jié)果,下面我們就來(lái)學(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í)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • java如何使用fastjson修改多層嵌套的Objectjson數(shù)據(jù)

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

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

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

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

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

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

最新評(píng)論

海伦市| 兴城市| 德钦县| 金堂县| 清流县| 建水县| 永修县| 林芝县| 安达市| 巴南区| 苏尼特左旗| 松原市| 正阳县| 祥云县| 页游| 彭泽县| 山丹县| 罗定市| 宁德市| 平乐县| 杂多县| 都昌县| 芦山县| 天柱县| 玉树县| 合作市| 南汇区| 嵊泗县| 天台县| 嫩江县| 乌拉特前旗| 广东省| 柘荣县| 吉安市| 吴江市| 睢宁县| 盘锦市| 板桥市| 镇坪县| 饶平县| 盐边县|