Junit 5 중@Parameterized Test 와@EnumSource 를 결합 하여 사용

개술
어떤 때 는 업무 코드 에서 매 거 진 값 에 따라 업무 장면 을 구분 할 수 있다.예 를 들 어:

public enum ActivityLimitEnum {
  LIMIT(1,"  "),
  UNLIMIT(0,"    ");
}
유닛 테스트 를 통 해 업무 코드 를 검증 하려 면 적어도 두 개의 테스트 방법 을 써 야 합 니 다.하 나 는 검수 캡 처 논리 이 고 하 나 는 검수 캡 처 논리 입 니 다.

@Test
  @DisplayName("  ")
  void testLimit() {
  }
  @Test
  @DisplayName("   ")
  void testUnLimit() {
  }
이 두 장면 은 봉투 와 봉투 만 구분 하기 때문에 다른 것 은 모두 같다.만약 에 두 개의 테스트 방법 을 쓰 면testLimittestUnLimit방법 에는 중복 코드 가 많다.이 럴 때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위의test방법 을 집행 할 때ActivityLimitEnumLIMITUNLIMIT두 개의 매 거 진 방법 이 있 기 때문에LIMIT유형 에 따라 한 번test방법 을 집행 한 다음UNLIMIT유형 에 따라 다시 집행test방법 을 두 번test방법 으로 집행 해 야 하기 때문에 우 리 는test방법 에서 유형 을 구분 해 야 한다.실제 상황 에 따라 코드 를 작성 하여 검증 하면 됩 니 다.
우 리 는assert로 위의 단원 테스트 를 실 행 했 는데 효 과 는 다음 과 같다.
Intellij IDEA방법 이 두 번 실 행 된 것 을 볼 수 있 고testLIMIT각각 한 번 씩 실 행 된 것 을 볼 수 있다.
만약 에 매 거 진 값 이 매우 많 고 단원 테스트 에서 그 중의 일부 매 거 진 값 을 검증 하고 싶 을 뿐 이 라면 다음 과 같은 방식 으로 할 수 있 습 니 다.

  @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);
    }
  }
이렇게 하면 매 거 진 값 에 대응 하 는 장면 만 실 행 됩 니 다.UNLIMIT에서LIMITJunit 5를 사용 하려 면 다음 과 같은 의존 도 를 추가 해 야 합 니 다.

<dependency>
  <groupId>org.junit.jupiter</groupId>
  <artifactId>junit-jupiter-params</artifactId>
  <version>5.2.0</version>
  <scope>test</scope>
</dependency>
총결산
이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.

좋은 웹페이지 즐겨찾기