org.junit.jupiter.api.Assumptions.*
- assumeTrue(조건) : 특정 조건이 만족했을 경우에만 테스트 실행
@Test
@DisplayName("테스트 제목 만들기 \uD83D\uDE31")
void create1_this_underscore_maybe_delete() {
//given
Assumptions.assumeTrue("LOCAL".equalsIgnoreCase(System.getenv("TEST_ENV")));
final Study study = new Study(StudyStatus.ENDED, -10);
//then
assertAll(
() -> assertNotNull(study),
() -> assertEquals(StudyStatus.DRAFT, study.getStatus(), () -> "스터디를 처음 만들면 " + StudyStatus.DRAFT + " 상태여야 한다."),
() -> assertTrue(study.getLimit() > 0, () -> "스터디 최대 참석 가능 인원은 0보다 커야 한다.")
);
}
ex) TEST_ENV가 LOCAL이면 테스트 실행 아니면 테스트 실행 X
- assumingThat(조건, 테스트) : 특정 조건이 만족하면 특정 테스트 실행
@Test
void assumingThatTest() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assumingThat("LOCAL".equalsIgnoreCase(System.getenv("TEST_ENV")), () -> {
assertEquals(StudyStatus.ENDED, study.getStatus());
});
assumingThat("ENV".equalsIgnoreCase(System.getenv("TEST_ENV")), () -> {
assertEquals(StudyStatus.ENDED, study.getStatus());
});
assumingThat("PROD".equalsIgnoreCase(System.getenv("TEST_ENV")), () -> {
assertEquals(StudyStatus.ENDED, study.getStatus());
});
}
- OnOS : 해당 운영체제 일때 실행 또는 해당 운영체제 일때 실행 X
@Test
@EnabledOnOs(OS.WINDOWS)
void EnabledOnOs_OS_WINDOWS() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}
@Test
@EnabledOnOs(OS.MAC)
void EnabledOnOs_OS_MAC() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}
@Test
@DisabledOnOs(OS.WINDOWS)
void DisabledOnOs_OS_WINDOWS() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}
@Test
@DisabledOnOs(OS.MAC)
void DisabledOnOs_OS_MAC() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}
실행 결과 :
- OnJRE : 해당 자바 버전일때만 실행 또는 해당 자바 버전일때 실행X
@Test
@EnabledOnJre({JRE.JAVA_8, JRE.JAVA_11, JRE.JAVA_13})
void EnabledOnJRE_JAVA11() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}
@Test
@DisabledOnJre(JRE.JAVA_11)
void DisabledOnJRE_JAVA11() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}
실행 결과 :
- IfEnvironmentVariable : 특정 환경 변수가 일때만 실행 또는 해당 환경 변수일때 실행 X
@Test
@EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "local")
void EnableIfEnvironmentVariableTest() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}
@Test
@DisabledIfEnvironmentVariable(named = "TEST_ENV", matches = "prod")
void DisableEnableIfEnvironmentVariableTest() {
//given
final Study study = new Study(StudyStatus.ENDED, 10);
//then
assertThat(study.getLimit()).isGreaterThan(9);
}