JUnit5 - 테스트 반복하기

현시기얌·2021년 8월 31일
0

JUnit5

목록 보기
6/8

테스트 반복하기

@RepeatTest

위와 같이 RepeatTest 애노테이션을 설정해주면 원하는 횟수 만큼 테스트가 반복 실행된다.

    @RepeatedTest(10)
    void repeatTest() {
        System.out.println("RepeatTest");
    }

결과

RepetitionInfo

@RepeatTest에서 RepetitionInfo라는 Parameter 변수를 사용할 수 있는데 이 변수를 이용하여 현재 테스트가 몇번째 실행 중인지 알 수 있고 총 몇번 반복해야 하는지도 알 수 있다.

 @RepeatedTest(10)
    void repeatTest(RepetitionInfo repetitionInfo) {
        System.out.println("RepeatTest " + repetitionInfo.getCurrentRepetition() + "/" + repetitionInfo.getTotalRepetitions());
    }

결과

@RepeatTest Name property

@RepeatTest에 name이라는 property를 통해 테스트의 이름을 설정할 수 있다.

  • {displayName}
  • {currentRepetition}
  • {totalRepetitions}
    @DisplayName("반복실행 테스트")
    @RepeatedTest(value = 10, name = "{displayName}, {currentRepetition}/{totalRepetitions}")
    void repeatTest(RepetitionInfo repetitionInfo) {
        System.out.println("RepeatTest " + repetitionInfo.getCurrentRepetition() + "/" + repetitionInfo.getTotalRepetitions());
    }

결과

@ParameterizedTest

반복적인 테스트를 할 때 마다 서로 다른 값들을 사용하고 싶다면 @ParameterizedTest를 사용하면 된다.

    @ParameterizedTest
    @ValueSource(strings = {"날씨가", "많이", "풀리고", "있네요."})
    void parameterizedTest(String message) {
        System.out.println(message);
    }

결과

@ValueSoure에 등록한 파라미터의 개수만큼 테스트가 반복되는것을 볼 수 있다.

@ParameterizedTest Name property

@ParameterizedTest도 @RepeatTest와 마찬가지로 name property를 사용하여 이름을 정의할 수 있다.

    @DisplayName("ParameterizedTest")
    @ParameterizedTest(name = "{index} {displayName} message={0}")
    @ValueSource(strings = {"날씨가", "많이", "풀리고", "있네요."})
    void parameterizedTest(String message) {
        System.out.println(message);
    }

결과

profile
현시깁니다

0개의 댓글