@RepeatedTest : 반복 횟수와 반복 테스트 이름을 설정할 수 있다.
@RepeatedTest(10) // 10번의 테스트 반복
void repeatTest(RepetitionInfo repetitionInfo) { // 매개변수 통하여 현재 테스트 정보를 얻어옴
System.out.println("현재 " + repetitionInfo.getTotalRepetitions() + " 개의 테스트중 " + // 총 테스트 수
repetitionInfo.getCurrentRepetition() + " 번 실행중"); // 현재 진행중인 테스트 번호
}
- 테스트 반복 횟수를 설정하고 매개변수를 통하여 테스트의 정보를 받아올 수 있다.
- @RepeatedTest 어노테이션엔 2개의 매개변수를 넣어줄수 있는데(value, name) 이를 활용하여 테스트코드 명칭을 좀더 명확하게 확인할 수 있다.
@DisplayName("테스트 코드 반복 실행")
@RepeatedTest(value = 10, name = "{DisplayName}, {currentRepetition}/{totalRepetitions}") // 10번의 테스트 반복
- {displayName}, {currentRepetition}, {totalRepetitions} 등의 정보를 활용할 수 있다.
@ParameterizedTest : 테스트에 여러 다른 매개변수를 대입해가며 반복 실행한다.
@DisplayName("테스트 코드 반복하기")
@ParameterizedTest(name = "{index} {displayName} param={0}")
@ValueSource(strings = {"테스트", "코드", "매개", "변수"})
void parameterized_ex(String param) {
System.out.println(param);
}
- @ValueSorce 어노테이션을 통해 반복시켜줄 변수들을 설정해주고 메서드에 매개변수를 통해 해당 변수들의 수에 맞춰 반ㅂ고하게 된다.
- name 을 통해 위에서 했던 방식과 동일하게 테스트명을 직관적으로 보여줄수 있다.
@EmptySource, @NullSource : Empty, Null 을 테스트 변수로 넣어준다.
- 위 두가지를 합쳐서 한번에 실행할 수 있는 어노테이션이 NullAndEmptySource 이다
@DisplayName("테스트 코드 반복하기")
@ParameterizedTest(name = "{index} {displayName} param={0}")
@ValueSource(strings = {"테스트", "코드", "매개", "변수"})
@EmptySource
@NullSource
@NullAndEmptySource
void parameterized_ex(String param) {
System.out.println(param);
}
- 테스트를 하다보면 null또는 빈값의 테스트도 필요한데 그때 사용하면 될것같다.
'Language > Java(TestCode)' 카테고리의 다른 글
[TestCode] @TestMethodOrder 테스트 순서 (JUnit5) (0) | 2022.08.28 |
---|---|
[TestCode] @TransInstance 테스트 인스턴스 (JUnit5) (0) | 2022.08.27 |
[TestCode] @interface 커스텀 태그 (JUnit5) (0) | 2022.08.25 |
[TestCode] @Tag 태깅과 필터링 (JUnit5) (0) | 2022.08.24 |
[TestCode] assume 조건에 따라 테스트 실행 (JUnit5) (0) | 2022.08.22 |