JUnit 5:条件によるテストの実行


インフラストラクチャの「より多くのJavaとアプリケーションをテストするためのさまざまな方法」を確認し、まとめました.
1. Assumption
  • org.junit.jupiter.api.Assumptions.*
  • 真実性保証(条件)
  • パラメータの値がtrueの場合はテストを継続し、falseの場合はテストを省略し、失敗
  • ではない.
  • ヘルメット(条件、試験)
  • 指定された家族が満たされた場合、指定された検証
  • が実行される.
        @Test
        void assumeTrueTest() {
            String test_env = System.getenv("TEST_ENV");
            System.out.println(test_env);
            assumeTrue("LOCAL".equalsIgnoreCase(test_env));
    
            Study study = new Study(10);
            assertThat(study.getLimit()).isGreaterThan(0);
        }
    
        @Test
        void assumeThatTest() {
            String test_env = System.getenv("TEST_ENV");
    
            assumingThat("LOCAL".equalsIgnoreCase(test_env),
                    () -> {
                        System.out.println("local");
                        Study study = new Study(10);
                        assertThat(study.getLimit()).isGreaterThan(0);
                    });
            assumingThat("DEV".equalsIgnoreCase(test_env),
                    () -> {
                        System.out.println("dev");
                        Study study = new Study(20);
                        assertThat(study.getLimit()).isGreaterThan(0);
                    });
        }
    2.@Enabledと@Disabled
  • オペレーティングシステムによるテストの実行
  • @EnabledOnOS(オペレーティングシステム条件)/@DisabledOnOS(オペレーティングシステム条件)
  • Java環境変数に従って実行
  • @EnabledOnJre(JRE.JAVA_8)/@EnabledOnJre(JRE.JAVA_8)
  •     @Test
        @EnabledOnOs(OS.WINDOWS)
        void enabledOnOsTest() {
            System.out.println("EnabledOnOs");
        }
    
        @Test
        @DisabledOnOs(OS.WINDOWS)
        void disabledOnOsTest() {
            System.out.println("DisabledOnOs");
        }
    
        @Test
        @EnabledOnJre(JRE.JAVA_8)
        void enabledOnJreTest() {
            System.out.println("JAVA_8");
        }
    
        @Test
        @EnabledOnJre(JRE.OTHER)
        void disabledOnJreTest() {
            System.out.println("JRE_OTHER");
        }