ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 테스트 반복하기
    테스트/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
Designed by Tistory.