JUnit 5에서 조건에 따라 테스트를 해볼 수 있는 API를 제공한다.
특정 조건을 만족하는 경우에 테스트를 실행시킬 수 있다.
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("LOCAL".equalsIgnoreCase(test_env), ()-> assertThat(actual.getLimit()).isGreaterThan(0));
람다식으로 테스트할 실행문을 넣어줄 수 있다.
OnOS
OS 별 테스트@EnabledOnOs(OS.WINDOWS) //OS가 Windows인 환경에서만 테스트를 실행한다.
OnJre
Jre 버전 별 테스트.@EnabledOnJre(value = JRE.JAVA_8)
@EnabledOnJre(value = JRE.OTHER)
//JRE 버전은 8부터 17버전 까지 각각 지정할 수 있으며, 그 외 버전은 OTHER를 사용한다.
IfSystemProperty
JVM의 System 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이라는 값에 만족해야만 테스트코드를 실행한다.
본 글는 백기선님의 더 자바, 애플리케이션을 테스트하는 다양한 방법을 수강하며 학습한 내용입니다.