레알윙 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);
		});
		
	}
}

 

결과1
결과2

 

@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);
		});
		
	}
}

결과1
결과2

 

 

@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);
		});
		
	}
}

 

결과1
결과2

 

 

 

반응형