ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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);
    		});
    		
    	}
    }

     

    결과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

     

     

     

    반응형

    '백기선(인프런 강의) > 더 자바, 애플리케이션을 테스트하는 다양한 방법' 카테고리의 다른 글

    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
Designed by Tistory.