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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩大片免费观看 | 国产一级真人毛爱做毛片 | 日产国产精品亚洲系列 | 国产精品久久免费 | 欧美日韩国产中文字幕 | 高清视频一区二区三区 | 男人j放进女人的p视频免费 | 美女岳肉太深了使劲 | 日韩成人免费aa在线看 | 日本免费精品 | 高清毛片一区二区三区 | 超91在线 | poren18日本老师hd | 久久精品国产免费播高清无卡 | 色香婷婷 | 俄罗斯三级在线观看级 | 天美影视文化传媒mv免费 | 猥琐对着美女飞机喷到脸上 | 日韩二三区 | 色图18p| 亚洲热图| 免费看一级a一片毛片 | 日韩天堂在线 | 成人在线观看免费视频 | 青青青久在线视频免费观看 | 2020精品极品国产色在线观看 | 精品久久久久久久久久久久久久久 | 欧美在线观看网址 | 天天爱天天做天天爽天天躁 | 红色播放器 | 日本特黄一级午夜剧场毛片 | 91精品国产高清久久久久久 | 波多野结衣中文字幕乱七八糟 | 久久性生大片免费观看性 | 无限在线观看视频大全免费高清 | 午夜免费无码福利视频麻豆 | 大好硬好深好爽想要视频 | 国产高清在线播放免费观看 | 亚洲精品第五页中文字幕 | 欧美日韩一本 | 爱草影院 |