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

JUnit5中的參數(shù)化測(cè)試實(shí)現(xiàn)

 更新時(shí)間:2023年05月12日 14:58:56   作者:咖非  
參數(shù)化測(cè)試使得我們可以使用不同的參數(shù)運(yùn)行同一個(gè)測(cè)試方法,從而減少我們編寫測(cè)試用例的工作量,本文主要介紹了JUnit5中的參數(shù)化測(cè)試實(shí)現(xiàn),感興趣的可以了解一下

JUnit是Java中最受歡迎的測(cè)試框架之一。JUnit 5是JUnit的最新版本,它引入了許多新功能,其中包括參數(shù)化測(cè)試。參數(shù)化測(cè)試使得我們可以使用不同的參數(shù)運(yùn)行同一個(gè)測(cè)試方法,從而減少我們編寫測(cè)試用例的工作量,并提高測(cè)試覆蓋率。在本文中,我們將深入探討JUnit 5中的參數(shù)化測(cè)試。

參數(shù)化測(cè)試的基本概念

在JUnit 5中,我們可以使用@ParameterizedTest注解來創(chuàng)建參數(shù)化測(cè)試。該注解用于標(biāo)記一個(gè)測(cè)試方法,并告訴JUnit該方法需要使用不同的參數(shù)運(yùn)行多次。
下面是一個(gè)簡(jiǎn)單的例子:

@ParameterizedTest
@ValueSource(ints = {1, 2, 3})
void testWithInts(int argument) {
    assertTrue(argument > 0 && argument < 4);
}

在上面的例子中,我們使用@ParameterizedTest注解標(biāo)記了一個(gè)測(cè)試方法,并使用@ValueSource注解指定了參數(shù)的值。在這個(gè)例子中,我們將測(cè)試方法運(yùn)行了三次,每次使用不同的參數(shù)值(1、2和3)。在每次運(yùn)行測(cè)試方法時(shí),JUnit都會(huì)將參數(shù)值傳遞給該方法。

使用不同類型的參數(shù)

在JUnit 5中,我們可以使用不同類型的參數(shù)來運(yùn)行參數(shù)化測(cè)試。下面是一些常見的參數(shù)類型:

  • @ValueSource:用于傳遞基本類型的參數(shù)。
  • @EnumSource:用于傳遞枚舉類型的參數(shù)。
  • @MethodSource:用于傳遞一個(gè)方法返回的參數(shù)列表。
  • @CsvSource:用于傳遞逗號(hào)分隔的參數(shù)列表。
  • @CsvFileSource:用于傳遞CSV文件中的參數(shù)列表。
  • @ArgumentsSource:用于傳遞自定義的參數(shù)列表。

下面是一個(gè)使用@EnumSource注解的例子:

@ParameterizedTest
@EnumSource(value = TimeUnit.class, names = {"DAYS", "HOURS"})
void testWithEnumSource(TimeUnit unit) {
    assertTrue(EnumSet.of(TimeUnit.DAYS, TimeUnit.HOURS).contains(unit));
}

在上面的例子中,我們使用@EnumSource注解來指定枚舉類型的參數(shù)。我們將該注解的value參數(shù)設(shè)置為TimeUnit.class,表示我們要使用TimeUnit枚舉類型的參數(shù)。我們將該注解的names參數(shù)設(shè)置為{"DAYS", "HOURS"},表示我們只想使用TimeUnit.DAYS和TimeUnit.HOURS兩種參數(shù)值。

使用自定義的參數(shù)

除了使用JUnit提供的參數(shù)類型之外,我們還可以使用自定義的參數(shù)。我們只需要實(shí)現(xiàn)ArgumentsProvider接口,并在測(cè)試方法上使用@ArgumentsSource注解即可。
下面是一個(gè)使用自定義參數(shù)的例子:

class MyArgumentsProvider implements ArgumentsProvider {
? ? @Override
? ? public Stream<? extends Arguments> provideArguments(ExtensionContext context) {
? ? ? ? return Stream.of(Arguments.of("apple", 1), Arguments.of("banana", 2));
? ? }
}
@ParameterizedTest
@ArgumentsSource(MyArgumentsProvider.class)
void testWithCustomArgs(String fruit, int number) {
? ? assertNotNull(fruit);
? ? assertNotEquals(0, number);
}

在上面的例子中,我們實(shí)現(xiàn)了一個(gè)名為MyArgumentsProvider的自定義參數(shù)提供器。該提供器返回了兩個(gè)參數(shù)列表,每個(gè)參數(shù)列表包含兩個(gè)參數(shù)。我們使用@ArgumentsSource注解來指定該提供器,并將其應(yīng)用于測(cè)試方法。

參數(shù)化測(cè)試的高級(jí)用法

在JUnit 5中,我們可以使用@DisplayName注解來為測(cè)試方法指定一個(gè)自定義名稱。這個(gè)名稱將用于在測(cè)試報(bào)告中顯示。

下面是一個(gè)使用@DisplayName注解的例子:

@ParameterizedTest(name = "{index} => a={0}, b={1}, sum={2}")
@CsvSource({"1,2,3", "4,5,9", "6,7,13"})
@DisplayName("Test adding two numbers")
void testAdd(int a, int b, int sum) {
    assertEquals(sum, a + b);
}

在上面的例子中,我們使用@CsvSource注解指定了參數(shù)列表,并使用@DisplayName注解為測(cè)試方法指定了一個(gè)自定義名稱。

結(jié)論

JUnit 5中的參數(shù)化測(cè)試使得我們可以使用不同的參數(shù)運(yùn)行同一個(gè)測(cè)試方法,從而減少了我們編寫測(cè)試用例的工作量,并提高了測(cè)試覆蓋率。在本文中,我們介紹了JUnit 5中參數(shù)化測(cè)試的基本概念、使用不同類型的參數(shù)、使用自定義的參數(shù)以及高級(jí)用法。希望這篇文章能夠幫助您更好地理解JUnit 5中的參數(shù)化測(cè)試。

到此這篇關(guān)于JUnit5中的參數(shù)化測(cè)試實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)JUnit5 參數(shù)化測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot訪問404問題的解決辦法

    springboot訪問404問題的解決辦法

    工作中遇到url404問題,解決問題的進(jìn)程比較崎嶇,寫篇文章記錄,下面這篇文章主要給大家介紹了關(guān)于springboot訪問404問題的解決辦法,文中通過圖文介紹的非常詳細(xì),要的朋友可以參考下
    2023-03-03
  • Spring?Boot將@RestController誤用于視圖跳轉(zhuǎn)問題解決

    Spring?Boot將@RestController誤用于視圖跳轉(zhuǎn)問題解決

    這篇文章主要為大家介紹了Spring?Boot將@RestController誤用于視圖跳轉(zhuǎn)問題解決方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 利用ThreadLocal實(shí)現(xiàn)一個(gè)上下文管理組件

    利用ThreadLocal實(shí)現(xiàn)一個(gè)上下文管理組件

    本文基于ThreadLocal原理,實(shí)現(xiàn)了一個(gè)上下文狀態(tài)管理組件Scope,通過開啟一個(gè)自定義的Scope,在Scope范圍內(nèi),可以通過Scope各個(gè)方法讀寫數(shù)據(jù),感興趣的可以了解一下
    2022-10-10
  • springmvc使用REST出現(xiàn):Request?method?'PUT'?not?supported問題

    springmvc使用REST出現(xiàn):Request?method?'PUT'?not?sup

    這篇文章主要介紹了springmvc使用REST出現(xiàn):Request?method?'PUT'?not?supported問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java中URL的處理方法詳解

    Java中URL的處理方法詳解

    URL(Uniform?Resource?Locator)中文名為統(tǒng)一資源定位符,有時(shí)也被俗稱為網(wǎng)頁地址,表示為互聯(lián)網(wǎng)上的資源,本文主要為大家介紹了Java是如何處理URL的,感興趣的可以了解一下
    2023-05-05
  • 快速搭建一個(gè)SpringBoot項(xiàng)目(純小白搭建教程)

    快速搭建一個(gè)SpringBoot項(xiàng)目(純小白搭建教程)

    本文主要介紹了快速搭建一個(gè)SpringBoot項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • java基礎(chǔ)知識(shí) super和this使用解析

    java基礎(chǔ)知識(shí) super和this使用解析

    這篇文章主要介紹了java基礎(chǔ)知識(shí) super和this使用解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • mybatis-plus?插入修改配置默認(rèn)值的實(shí)現(xiàn)方式

    mybatis-plus?插入修改配置默認(rèn)值的實(shí)現(xiàn)方式

    這篇文章主要介紹了mybatis-plus?插入修改配置默認(rèn)值的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Spring實(shí)例化bean的四種方式詳解

    Spring實(shí)例化bean的四種方式詳解

    這篇文章主要給大家介紹了關(guān)于Spring中實(shí)例化bean的四種方式:構(gòu)造方法、靜態(tài)工廠、實(shí)例工廠和FactoryBean,感興趣的可以了解一下
    2022-06-06
  • jdbc實(shí)現(xiàn)連接和增刪改查功能

    jdbc實(shí)現(xiàn)連接和增刪改查功能

    這篇文章主要為大家詳細(xì)介紹了jdbc實(shí)現(xiàn)連接和基本的增刪改查功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評(píng)論

高清| 临泉县| 夹江县| 巴青县| 灌阳县| 浠水县| 泗阳县| 中山市| 常山县| 松溪县| 华阴市| 常熟市| 勐海县| 安图县| 三原县| 四子王旗| 玉田县| 新和县| 蚌埠市| 黄龙县| 清徐县| 丽水市| 青川县| 寿光市| 郴州市| 惠州市| 呈贡县| 洛宁县| 十堰市| 抚松县| 泾源县| 五家渠市| 固原市| 长沙市| 湘潭市| 海城市| 惠水县| 敖汉旗| 昌都县| 法库县| 枝江市|