특정한 조건을 만족하는 경우에 테스트를 실행하는 방법.
특정한 OS, 자바 버전, 환경 변수, 시스템 변수에 따라 실행하거나 하지 말아야 한다면..
org.junit.jupiter.api.Assumptions.*
@Enabled___ 와 @Disabled___
EnableOnOs, EnabledOnJre, assumeTrue, asumingThat
class StudyTest {
@Test
@DisplayName("스터디 만들기")
@EnabledOnOs({OS.LINUX, OS.MAC}) // OS에 특화된 TEST가 있다면
@EnabledOnJre({JRE.JAVA_8, JRE.JAVA_9, JRE.JAVA_11})
void create_new_Study() {
String test_env = System.getenv("TEST_ENV");
System.out.println(test_env);
// LOCAL인 경우에만 다음에 있는 TEST를 실행, 환경변수 = TEST_ENV -> LOCAL로 설정 헀을 때,
assumeTrue("LOCAL".equalsIgnoreCase(test_env));
assumingThat("LOCAL".equalsIgnoreCase(test_env), () -> {
System.out.println("local");
Study actual = new Study(100);
assertThat(actual.getLimit()).isGreaterThan(0);
});
assumingThat("hyungil".equalsIgnoreCase(test_env), () -> {
System.out.println("hyungil");
Study actual = new Study(10);
assertThat(actual.getLimit()).isGreaterThan(0);
});
}
@Test
@DisabledOnOs(OS.LINUX)
@EnabledOnOs(JRE.OTHER)
void create1_new_study_again() {
System.out.println("create1");
}
EnabledIfEnvironmentVariable로 대체 가능
class StudyTest {
@Test
@DisplayName("스터디 만들기")
@EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "local")
void create_new_Study() {
Study actual = new Study(100);
assertThat(actual.getLimit()).isGreaterThan(0);
}
@Test
@EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "hyungil")
void create1_new_study_again() {
System.out.println("create1");
}