JUnit 5 조건 별 테스트 실행

Chori·2021년 11월 8일
1

JUnit 5

목록 보기
3/6
post-thumbnail

조건에 따른 테스트 실행

JUnit 5에서 조건에 따라 테스트를 해볼 수 있는 API를 제공한다.
특정 조건을 만족하는 경우에 테스트를 실행시킬 수 있다.


Assumptions

  • assumeTrue (조건)
    조건이 true면 테스트를 실행하고, false면 실행하지 않는다.
String test_env = System.getenv("TEST_ENV");
System.out.println(test_env);
assumeTrue("LOCAL".equalsIgnoreCase(test_env));

Sytem내에 TEST_ENV라는 환경변수를 getenv 메서드로 호출한다.
호출한 값이 있다면 환경변수 이름에 맞는 값을 출력할 것이고, 아니라면 null이 출력된다.
assumTrue환경변수 값이 "LOCAL"이라고 들어오게 되면 True임으로 테스트를 실행하고, False면 테스트는 실행되지 않는다.

  • assumingThat (조건, 테스트)
    첫 번째 인자 값의 조건이 true면, 두 번째 인자로 받은 테스트코드를 실행한다.
assumingThat("LOCAL".equalsIgnoreCase(test_env), ()-> assertThat(actual.getLimit()).isGreaterThan(0));

람다식으로 테스트할 실행문을 넣어줄 수 있다.


@Enabled~(활성화) 와 @Disabled~(비활성화) 어노테이션

  • OnOS OS 별 테스트
@EnabledOnOs(OS.WINDOWS) //OS가 Windows인 환경에서만 테스트를 실행한다.
  • OnJre Jre 버전 별 테스트.
@EnabledOnJre(value = JRE.JAVA_8)
@EnabledOnJre(value = JRE.OTHER)
//JRE 버전은 8부터 17버전 까지 각각 지정할 수 있으며, 그 외 버전은 OTHER를 사용한다.
  • IfSystemProperty JVMSystem Property 별 테스트.
@EnabledIfSystemProperty(named = "java.version", matches = "1.8.0_202")
@EnabledIfSystemProperty(named = "java.vendor", matches = "Oracle Corporation")

본인의 System Property에 대한 정보는 해당 글에서 참고하여 확인해볼 수 있다.

  • IfEnvironmentVariable 환경변수 별 테스트.
@EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "LOCAL")

내 PC에 'TEST_ENV'라는 환경변수를 만들어 값을 'LOCAL'로 저장해두었다.
어노테이션은 TEST_ENV라는 환경변수가 LOCAL이라는 값에 만족해야만 테스트코드를 실행한다.

참고자료


본 글는 백기선님의 더 자바, 애플리케이션을 테스트하는 다양한 방법을 수강하며 학습한 내용입니다.

profile
꾸준한 성장

0개의 댓글