一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|JavaScript|易語言|

服務器之家 - 編程語言 - Java教程 - Junit 5中@ParameterizedTest與@EnumSource結合使用

Junit 5中@ParameterizedTest與@EnumSource結合使用

2021-06-19 10:52Sam哥哥 Java教程

今天小編就為大家分享一篇關于Junit 5中@ParameterizedTest與@EnumSource結合使用,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

概述

有時候業務代碼里會根據一個枚舉值來區分業務場景,比如說:

?
1
2
3
4
public enum activitylimitenum {
  limit(1,"封頂"),
  unlimit(0,"上不封頂");
}

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

?
1
2
3
4
5
6
7
8
@test
  @displayname("封頂")
  void testlimit() {
  }
  @test
  @displayname("不封頂")
  void testunlimit() {
  }

由于這兩個場景只是區分封頂和不封頂,其他的都是一樣的,如果寫兩個測試方法,testlimittestunlimit方法里會有很多重復代碼。這個時候junit 5 @parameterizedtest@enumsource就可以派上用場了。

?
1
2
3
4
5
6
7
8
9
10
11
@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在執行上面的test方法的時候,由于activitylimitenum中有limitunlimit兩個枚舉,先按照limit類型執行一次test方法,再按照unlimit類型再次執行test方法,共執行兩次test方法,因此我們需要在test方法里,區分一下類型,按照實際情況編寫assert代碼進行驗證即可。

我們用intellij idea執行上面的單元測試,效果如下:

Junit 5中@ParameterizedTest與@EnumSource結合使用

可以看到test方法確實執行了兩次,limitunlimit各執行一次。

如果枚舉中的枚舉值非常多,而單元測試里只是想驗證其中部分枚舉值,那可以用下面的方式:

?
1
2
3
4
5
6
7
8
9
10
11
@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);
  }
}

這樣就只會執行limit枚舉值對應的場景。

如果要在junit 5里使用@parameterizedtest@enumsource,需要添加如下依賴:

?
1
2
3
4
5
6
<dependency>
  <groupid>org.junit.jupiter</groupid>
  <artifactid>junit-jupiter-params</artifactid>
  <version>5.2.0</version>
  <scope>test</scope>
</dependency>

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

原文鏈接:https://blog.csdn.net/linsongbin1/article/details/82784224

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 成人一区二区丝袜美腿 | 99精品国产美女福到在线不卡 | 性欧美黑人巨大喷潮xxoo | 午夜影院免费观看视频 | 亚洲AV久久无码精品九号软件 | 精品老司机在线视频香蕉 | 久久久久激情免费观看 | 日韩精品一区二区三区中文在线 | 精品视频一区二区 | 性刺激欧美三级在线现看中文 | 不良网站在线观看 | 亚洲2017久无码 | 国产专区日韩精品欧美色 | 免费超级乱淫视频播放性 | 久久精品中文字幕 | 国产a不卡片精品免费观看 国产aaa伦理片 | 午夜爱情动作片P | 18young第一次 | 亚洲国产欧美在线人成aaaa20 | 国产成人精品s8sp视频 | 国产99在线a视频 | 99久久精品久久久久久清纯 | 国产a免费观看 | 免费成年人在线视频 | 十大网站免费货源 | 欧美人禽杂交狂配无删完整 | 国产精品视频在这里有精品 | 激情乱文 | 扒开斗罗美女了的胸罩和内裤漫画 | 女同久久另类99精品国产 | 清纯唯美 亚洲 | 91av俱乐部| 亚洲视屏在线观看 | 免费370理论片中文字幕 | 亚洲春色综合另类网蜜桃 | 三星w999| 99精品久久99久久久久久 | 俄罗斯引擎首页进入 | 欧美黑人成人免费全部 | 性色欲情网站IWWW | 波多野结衣在线中文字幕 |