亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

概述

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

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

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

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

由于這兩個場景只是區(qū)分封頂和不封頂,其他的都是一樣的,如果寫兩個測試方法,testLimittestUnLimit方法里會有很多重復(fù)代碼。這個時候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方法的時候,由于ActivityLimitEnum中有LIMITUNLIMIT兩個枚舉,先按照LIMIT類型執(zhí)行一次test方法,再按照UNLIMIT類型再次執(zhí)行test方法,共執(zhí)行兩次test方法,因此我們需要在test方法里,區(qū)分一下類型,按照實際情況編寫assert代碼進(jìn)行驗證即可。

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

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

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

  @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í)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • Java數(shù)組越界問題實例解析

    Java數(shù)組越界問題實例解析

    這篇文章主要介紹了Java數(shù)組越界問題實例解析,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • 一文搞懂Java創(chuàng)建線程的五種方法

    一文搞懂Java創(chuàng)建線程的五種方法

    本文主要為大家詳細(xì)介紹一下Java實現(xiàn)線程創(chuàng)建的五種常見方式,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)有一定的幫助,感興趣的可以跟隨小編學(xué)習(xí)一下
    2022-06-06
  • Spring boot注解@Async線程池實例詳解

    Spring boot注解@Async線程池實例詳解

    這篇文章主要介紹了Spring boot注解@Async線程池實例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • spring-boot-autoconfigure模塊用法詳解

    spring-boot-autoconfigure模塊用法詳解

    autoconfigure就是自動配置的意思,spring-boot通過spring-boot-autoconfigure體現(xiàn)了"約定優(yōu)于配置"這一設(shè)計原則,而spring-boot-autoconfigure主要用到了spring.factories和幾個常用的注解條件來實現(xiàn)自動配置,思路很清晰也很簡單,感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • Java 生產(chǎn)者/消費者問題實例詳解

    Java 生產(chǎn)者/消費者問題實例詳解

    這篇文章主要實例分析了java中生產(chǎn)者消費者問題的方法,需要的朋友可以可以參考下
    2017-04-04
  • java中每月等額與先息后本計算

    java中每月等額與先息后本計算

    一般信用貸款會提供兩種還款方式:每月等額或者先息后本。每月等額,就是每月歸還等同的部分本金和利息,你手里在使用的本金其實是逐月減少的。先息后本就是先還利息,到期歸還本金。本文將介紹他們的實現(xiàn)方法。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • Java MD5加密(實例講解)

    Java MD5加密(實例講解)

    下面小編就為大家?guī)硪黄狫ava MD5加密(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • maven打包zip包含bin下啟動腳本的完整代碼

    maven打包zip包含bin下啟動腳本的完整代碼

    這篇文章主要介紹了maven打包zip包含bin下啟動腳本,本文給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • Java8中對于LocalDateTime的序列化和反序列化問題

    Java8中對于LocalDateTime的序列化和反序列化問題

    這篇文章主要介紹了Java8中對于LocalDateTime的序列化和反序列化問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Java自定義協(xié)議報文封裝 添加Crc32校驗的實例

    Java自定義協(xié)議報文封裝 添加Crc32校驗的實例

    下面小編就為大家分享一篇Java自定義協(xié)議報文封裝 添加Crc32校驗的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評論