위와 같이 RepeatTest 애노테이션을 설정해주면 원하는 횟수 만큼 테스트가 반복 실행된다.
@RepeatedTest(10)
void repeatTest() {
System.out.println("RepeatTest");
}
@RepeatTest에서 RepetitionInfo라는 Parameter 변수를 사용할 수 있는데 이 변수를 이용하여 현재 테스트가 몇번째 실행 중인지 알 수 있고 총 몇번 반복해야 하는지도 알 수 있다.
@RepeatedTest(10)
void repeatTest(RepetitionInfo repetitionInfo) {
System.out.println("RepeatTest " + repetitionInfo.getCurrentRepetition() + "/" + repetitionInfo.getTotalRepetitions());
}
@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
@ValueSource(strings = {"날씨가", "많이", "풀리고", "있네요."})
void parameterizedTest(String message) {
System.out.println(message);
}
@ValueSoure에 등록한 파라미터의 개수만큼 테스트가 반복되는것을 볼 수 있다.
@ParameterizedTest도 @RepeatTest와 마찬가지로 name property를 사용하여 이름을 정의할 수 있다.
@DisplayName("ParameterizedTest")
@ParameterizedTest(name = "{index} {displayName} message={0}")
@ValueSource(strings = {"날씨가", "많이", "풀리고", "있네요."})
void parameterizedTest(String message) {
System.out.println(message);
}