5 @ParameterizedTest与@EnumSource怎么在Junit中使用

  介绍

这期内容当中小编将会给大家带来有关@ParameterizedTest与@EnumSource怎么在Junit 5中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强>概述

有时候业务代码里会根据一个枚举值来区分业务场景,比如说:

public  enum  ActivityLimitEnum  {   限制才能(1,“封顶“),   UNLIMIT才能(0,“上不封顶“);   }

如果编写单元测试来验证业务代码,至少需要写两个测试方法,一个验收封顶逻辑,一个验收不封顶逻辑。

@Test   @DisplayName才能(“封顶“)   void 才能;testLimit (), {   ,,}   @Test才能   @DisplayName才能(“不封顶“)   void 才能;testUnLimit (), {   以前,,}

由于这两个场景只是区分封顶和不封顶,其他的都是一样的,如果写两个测试方法,<代码> testLimit 和<代码> testUnLimit 方法里会有很多重复代码。这个时候<代码> Junit 5> @ParameterizedTest 和<代码> @EnumSource> , @ParameterizedTest   @EnumSource才能(ActivityLimitEnum.class)   @DisplayName才能(“封顶和不封顶“)   void 才能测试(ActivityLimitEnum  activityLimitEnum), {   ,,,if  (ActivityLimitEnum.LIMIT.equals (activityLimitEnum)), {   ,,,,,assertFalse(假);   ,,,},   ,,,else  if  (ActivityLimitEnum.UNLIMIT.equals (activityLimitEnum)), {   ,,,,,assertTrue(真正的);   ,,,}   以前,,}

<代码> Junit 5> 测试方法的时候,由于<代码> ActivityLimitEnum> 限制和<代码> UNLIMIT> 类限制型执行一次<代码> 测试方法,再按照<代码> UNLIMIT> 测试方法,共执行两次测试<代码> 方法,因此我们需要在<代码> 测试方法里,区分一下类型,按照实际情况编写<代码>断言代码进行验证即可。

我们用<代码> Intellij IDEA>

 @ParameterizedTest与@EnumSource怎么在Junit 5中使用“> </p> <p>可以看到<代码> </代码>测试方法确实执行了两次,<代码>限制</代码>和<代码> UNLIMIT </代码>各执行一次。</p> <p>如果枚举中的枚举值非常多,而单元测试里只是想验证其中部分枚举值,那可以用下面的方式:</p> <pre类=, @ParameterizedTest   @EnumSource才能(value =, ActivityLimitEnum.class, names =, {“LIMIT"})   @DisplayName才能(“封顶和不封顶“)   void 才能测试(ActivityLimitEnum  activityLimitEnum), {   ,,,if  (ActivityLimitEnum.LIMIT.equals (activityLimitEnum)), {   ,,,,,assertFalse(假);   ,,,}   ,,,else  if  (ActivityLimitEnum.UNLIMIT.equals (activityLimitEnum)), {   ,,,,,assertTrue(真正的);   ,,,}   以前,,}

这样就只会执行<代码> 限制枚举值对应的场景。

如果要在<代码> Junit 5> @ParameterizedTest 和<代码> @EnumSource> & lt; dependency>   & lt;才能groupId> org.junit.jupiter</groupId>   & lt;才能artifactId> junit-jupiter-params</artifactId>   & lt;才能version> 5.2.0</version>   & lt;才能scope> test</scope>   & lt;/dependency>

上述就是小编为大家分享的@ParameterizedTest与@EnumSource怎么在Junit 5中使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

5 @ParameterizedTest与@EnumSource怎么在Junit中使用