상세 컨텐츠

본문 제목

TIL : JUnit

Programming/TIL

by 홍잭슨 2021. 12. 15. 07:05

본문

조건에 따라 테스트 코드 실행하기

  • Assumptions
    • assumeTrue(조건)
    • assumingThat(조건, 테스트)
  • @Enabled__와 @Disabled__
    • OnOS
    • OnJre
    • ifSystemProperty
    • ifEnvironmentVariable
    • if
@Test
    @EnabledOnOs({OS.LINUX, OS.MAC}) // LINUX와 MAC에서만 실행
    @EnabledOnJre({JRE.JAVA_8}) //JAVA 8 에서만 실행
    @EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "LOCAL") //TEST_ENV 환경 변수가 LOCAL 인 경우만 실행
    void create(){
        String test_env = System.getenv("TEST_ENV");
        System.out.println(test_env);
        assumeTrue("LOCAL".equalsIgnoreCase(test_env)); // TRUE가 아니면 테스트가 이 시점에서 종료됨

        assumingThat("LOCAL".equalsIgnoreCase(test_env), () -> {
            System.out.println("TRUE"); // 만족을 하면 구동되는 코
        });
    }

태깅과 필터링

** 태깅 : 태그를 붙이는 것, 테스트 그룹을 만들고 원하는 테스트 그룹만 테스트를 실행할 수 있는 기능

  • @Tag
    • 테스트 메소드에 태그를 추가할 수 있다
    • 하느이 테스트 메소드에 여러 태그를 사용할 수 있다
  • 인텔리J에서 특정 태그로 테스트 필터링 하는 방법

  • Maven에 의한 필터링
  • <plugin> 
    	<artifactId>maven-surefire-plugin</artifactId> 
        <configuration> 
        	<groups>fast | slow</groups> 
        </configuration> 
     </plugin>

커스텀 태그

  • 원하는 Test Anotation들을 조합하여 어노테이션을 만들 수 있다
  • Example :
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Tag("fast")
@Test
public @interface FastTest {
}

테스트 반복하기

  • @RpeatedTest
    • 반복 횟수와 반복 테스트 이름을 설정할 수 있다
      • {displayName}
      • {currentRepetition}
      • {totalRepetation}
    • RepetitionInfo 타입의 인자를 받을 수 있다

  • Parameterized Test
    • 테스트에 여러 다른 매개변수를 대입해가며 반복 실행한다.
      • {displayName}
      • {index}
      • {arguments}
      • {0}, {1}, ...

'Programming > TIL' 카테고리의 다른 글

TIL : JUnit, Mockito  (0) 2021.12.20
TIL : JUnit - 테스트 순서, Properties  (0) 2021.12.17
TIL: JUnit  (0) 2021.12.14
TIL: Anotation Processor  (0) 2021.12.13
TIL: 리플렉션, 다이나믹 프록시  (0) 2021.12.12

관련글 더보기