백기선(인프런 강의)/더 자바, 애플리케이션을 테스트하는 다양한 방법
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);
});
}
}
반응형