도담이 먹여 살려야하는 집사

Assumption:조건에 따른 테스트 실행 본문

Spring/TEST

Assumption:조건에 따른 테스트 실행

천재도담 2021. 1. 13. 19:43

특정한 조건(OS/환경 변수 등)을 만족하는 경우에 테스트를 실행하는 방법 

 

환경변수  >> TEST_ENV = LOCAL인 상태 

   @Test
    @DisplayName("assumeTrue (조건)")
    void create_new_assumeTrue() {
        String test_env = System.getenv("TEST_ENV"); 
        System.out.println(test_env);
        assumeTrue("LOCAL".equalsIgnoreCase(test_env));
         
        Study actual = new Study(100);
        assertThat(actual.getLimit()).isGreaterThan(0);
    }

위 코드처럼 assumeTrue(조건)각자 따로 써줄 수 도 있고 assuming That(조건,테스트)를 한번에 묶어서 사용할 수 있음. 

    @Test
    @DisplayName("assumeTrue (조건)")
    void create_new_assumeTrue() {
        String test_env = System.getenv("TEST_ENV");

        assumingThat("LOCAL".equalsIgnoreCase(test_env), () -> {
            Study actual = new Study(100);
            assertThat(actual.getLimit()).isGreaterThan(0);
        });
        assumingThat("SOHEE".equalsIgnoreCase(test_env), () -> {
            Study actual = new Study(10);
            assertThat(actual.getLimit()).isGreaterThan(0);
        });

    }

Annotation을 사용할 경우 @Enabled__ 또는 @Disabled__ 

  • OnOS

  • OnJre

  • IfSystemProperty

  • IfEnvironmentVariable

  • If 

    @DisplayName("assumTrue(조건) Annotation")
    @EnabledIfEnvironmentVariable(named = "TEST_ENV", matches = "LOCAL")
    void create_new_assumeTrue_annotation() {
        Study actual = new Study(100);
        assertThat(actual.getLimit()).isGreaterThan(0);
    }

 

Comments