@RepeatedTest
라는 애너테이션으로 테스트를 반복할 수 있다.
// 반복 테스트
@RepeatedTest(value = 10, name = "반복 테스트 {currentRepetition} / {totalRepetitions}")
@DisplayName("반복 테스트")
// 반복 테스트 정보를 가져오는 인자
void repeat_test(RepetitionInfo repetitionInfo) {
System.out.println("test " + repetitionInfo.getCurrentRepetition());
}
이름도 동적으로 지정할 수 있다.
파라미터를 지정해서 테스트를 진행할 수도 있다.
// 파라미터를 이용한 테스트
@ParameterizedTest(name = "{index} {displayName} message={0}")
@ValueSource(ints = { 10, 20, 30 })
@DisplayName("반복 테스트")
void repeat_test(int number) {
System.out.println("test " + number);
}
각 바인딩된 파라미터 명은 사전에 지정되어 있다.
파라미터로 들어갈 수 있는 소스들은 여러 타입으로 줄 수 있다.
EmptySource는 비어있는 문자열을 소스로 제공해줌.
@ParameterizedTest(name = "{index} {displayName} message={0}")
@ValueSource(strings = { "Hello", "World" })
@NullAndEmptySource
@DisplayName("반복 테스트")
void repeat_test(String message) {
System.out.println("test " + message);
}
제공된 파라미터를 형변환 해서 사용할 수도 있다. 파라미터가 여러 타입의 소스로 제공되면, 그걸 각각 꺼내 서 조합해서 사용할 수도 있음. 이건 ArgumentAccessor
라는 타입을 이용해 접근 가능… 그런데 실제로 사용할지는 모르겠다. 필요할때 찾아보도록