-
Junit5 조건에 따라 테스트 실행하기백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법 2020. 5. 19. 13:09반응형
특정한 조건, 특정한 환경변수, 값에 따라 실행하거나 안하거나 이런 조건에 따른 조건
assumeTrue(조건)
- org.junit.jupiter.api.Assumptions.*에 존재
- True/false으로 나타내며 false일때 아래 테스트코드 동작을 안함
import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assumptions.assumeTrue; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; public class StudyTest { @Test @DisplayName("스터디 만들기 \uD83D\uDE31") void create_new_syudy() { String test_env = System.getenv("TEST_ENV"); System.out.println(test_env); assumeTrue("LOCAL".equalsIgnoreCase(test_env)); // 환경변수가 local인지? Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); } }
assumingThat(조건, 테스트)
public class StudyTest { @Test @DisplayName("스터디 만들기 \uD83D\uDE31") void create_new_syudy() { String name = "JinSeok"; assumingThat("JinSeok".equalsIgnoreCase(name), () -> { System.out.println("JinSeok 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); assumingThat("test".equalsIgnoreCase(name), () -> { System.out.println("test 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); } }
@Enabled___ 와 @Disabled___
EnabledOnOS/DisabledOnOS
OS버전
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledOnOs; import org.junit.jupiter.api.condition.OS; public class StudyTest { @Test @DisplayName("스터디 만들기 \uD83D\uDE31") @EnabledOnOs({OS.WINDOWS, OS.LINUX}) void create_new_syudy() { String name = "JinSeok"; assumingThat("JinSeok".equalsIgnoreCase(name), () -> { System.out.println("JinSeok 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); assumingThat("test".equalsIgnoreCase(name), () -> { System.out.println("test 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); } @Test @DisplayName("스터디 만들기 \uD83D\uDE31") @EnabledOnOs({OS.LINUX}) void create_new_syudy_again() { String name = "JinSeok"; assumingThat("JinSeok".equalsIgnoreCase(name), () -> { System.out.println("again JinSeok 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); assumingThat("test".equalsIgnoreCase(name), () -> { System.out.println("again test 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); } }
@EnabledOnJre/@DisabledOnJre
JDK 버전
import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assumptions.assumingThat; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.DisabledOnJre; import org.junit.jupiter.api.condition.EnabledOnJre; import org.junit.jupiter.api.condition.JRE; public class StudyTest { @Test @DisplayName("스터디 만들기 \uD83D\uDE31") @EnabledOnJre({JRE.JAVA_8, JRE.JAVA_9, JRE.JAVA_11}) void create_new_syudy() { String name = "JinSeok"; assumingThat("JinSeok".equalsIgnoreCase(name), () -> { System.out.println("JinSeok 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); assumingThat("test".equalsIgnoreCase(name), () -> { System.out.println("test 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); } @Test @DisplayName("스터디 만들기 \uD83D\uDE31") @DisabledOnJre(JRE.JAVA_8) void create_new_syudy_again() { String name = "JinSeok"; assumingThat("JinSeok".equalsIgnoreCase(name), () -> { System.out.println("again JinSeok 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); assumingThat("test".equalsIgnoreCase(name), () -> { System.out.println("again test 이름이 맞습니다.@@@@@@@@"); Study actual = new Study(10); assertThat(actual.getLimit()).isGreaterThan(0); }); } }
반응형'백기선(인프런 강의) > 더 자바, 애플리케이션을 테스트하는 다양한 방법' 카테고리의 다른 글
Mock 객체 만들기 (0) 2020.05.26 Mockito (0) 2020.05.24 Assertion (0) 2020.05.18 테스트 이름 표시하기 (0) 2020.05.17 JUnit 5 시작하기 (0) 2020.05.17