테스트 반복하기

@RepeatedTest 라는 애너테이션으로 테스트를 반복할 수 있다.

   // 반복 테스트
    @RepeatedTest(value = 10, name = "반복 테스트 {currentRepetition} / {totalRepetitions}")
    @DisplayName("반복 테스트")
    // 반복 테스트 정보를 가져오는 인자
    void repeat_test(RepetitionInfo repetitionInfo) {
        System.out.println("test " + repetitionInfo.getCurrentRepetition());
    }

image.png

이름도 동적으로 지정할 수 있다.

파라미터를 지정해서 테스트를 진행할 수도 있다.

      // 파라미터를 이용한 테스트
    @ParameterizedTest(name = "{index} {displayName} message={0}")
    @ValueSource(ints = { 10, 20, 30 })
    @DisplayName("반복 테스트")
    void repeat_test(int number) {
        System.out.println("test " + number);
    }

image.png

각 바인딩된 파라미터 명은 사전에 지정되어 있다.

테스트 반복하기(2)

파라미터로 들어갈 수 있는 소스들은 여러 타입으로 줄 수 있다.

image.png

EmptySource는 비어있는 문자열을 소스로 제공해줌.

    @ParameterizedTest(name = "{index} {displayName} message={0}")
    @ValueSource(strings = { "Hello", "World" })
    @NullAndEmptySource
    @DisplayName("반복 테스트")
    void repeat_test(String message) {
        System.out.println("test " + message);
    }

image.png

제공된 파라미터를 형변환 해서 사용할 수도 있다. 파라미터가 여러 타입의 소스로 제공되면, 그걸 각각 꺼내 서 조합해서 사용할 수도 있음. 이건 ArgumentAccessor라는 타입을 이용해 접근 가능… 그런데 실제로 사용할지는 모르겠다. 필요할때 찾아보도록