-
테스트 반복하기테스트/Junit5 2021. 2. 2. 17:09
사용되는 애노테이션
- @RepeatedTest
- 반복횟수와 반복 테스트 이름을 설정할 수 있다.
- {displayName}
- {currentRepetition}
- {totalRepetitions}
- 반복횟수와 반복 테스트 이름을 설정할 수 있다.
- @ParameterizedTest
- 테스트에 여러 매개변수를 대입해가며 반복 실행한다.
- {dispalyName}
- {index]
- {arguments}
- {0},{1}
- 테스트에 여러 매개변수를 대입해가며 반복 실행한다.
예제코드1. RepeatedTest애노테이션을 활용한 테스트반복
package com.example.junittest; import org.junit.jupiter.api.*; @DisplayName("스터디 클레스") class StudyTest { @Test @DisplayName("스터디 만들기☺️") @FastTest void create_new_study_test() { String test_env = System.getenv("TEST_ENV"); //환경변수를 받환 System.out.println(test_env); } @Test @slowTest @Tag("slow") //원격환경에서 void create_again_study_test(){ System.out.println("다른 테스트 "); } @RepeatedTest(10) void create_study(){ System.out.println("test"); } }
예제코드2. @RepeatedTest arguments를 활용한 반복
또한 @RepeatedTest애노테이션에 적용된 메서드에 arguments로 RepetitionInfo인터페이스를 사용해 반복에 대한 정보를 얻을 수 있다.
@RepeatedTest(10) void create_study(RepetitionInfo repetitionInfo){ System.out.println("test\n" + "repetitionInfo.getCurrentRepetition() ="+repetitionInfo.getCurrentRepetition() +"\nrepetitionInfo.getTotalRepetitions()="+ repetitionInfo.getTotalRepetitions()); }
RepetitionInfo의 getCurrentRepetition메소드는 현재 반복횟수 -> 1부터시작
getTotalRepetitions메소드는 총 반복횟수 정보를 나타낸다.
예제코드3. @RepeatedTest 파라미터를 이용해 테스트 이름 표시하기
@RepeatedTest애노테이션에 value는 반복횟수 매개변수, name은 테스트 이름을 설정할 수 있는 매개변수이다.
@DisplayName("반복 스터디 만들기") @RepeatedTest(value = 10, name = "{DisplayName},{currentRepetition}/{totalRepetitions}") void create_study(RepetitionInfo repetitionInfo){ System.out.println("test\n" + "repetitionInfo.getCurrentRepetition() ="+repetitionInfo.getCurrentRepetition() +"\nrepetitionInfo.getTotalRepetitions()="+ repetitionInfo.getTotalRepetitions()); }
*주의할점 - placeholder로 작성해주어야 한다.
예제코드3. @ParemeterizedTest와 @ValueSource활용한 반복
@DisplayName("반복 스터디 만들기2") @ParameterizedTest(name ="{index} {displayName} message={0} ") @ValueSource(strings = {"JUnit5","배우고","테스트 잘하자"}) void ParameterizedTest(String message){ System.out.println(message); }
@ParameterizedTest로 각각의 테스트 이름을 설정할 수 있다. 매개변수로 현재 반복중인 인덱스, displayname, 인덱스번호를 참조해String문자열을 참조 할 수 있는 매개변수를 할당할 수 있고, 반복하는 값은 @ValueSource애노테이션을 통해 할당한다.
'테스트 > Junit5' 카테고리의 다른 글
테스트 인스턴스 (0) 2021.02.06 테스트 반복하기2 @ParameterizedTest이용한 추가 방법 (0) 2021.02.02 커스텀 태그 (0) 2021.02.02 태깅과 필터링 (0) 2021.02.02 조건에 따라 테스트 실행하기 (0) 2021.02.02 - @RepeatedTest