JUnit 5 - 반복 및 조건부 테스트

이 자습서에서는 JUnit을 사용하여 더 복잡한 테스트를 작성하는 방법을 배웁니다. 🙂

반복 가능한 테스트



테스트를 작성할 때 특정 테스트를 여러 번 실행해야 하는 경우가 있을 수 있습니다. 이를 위해 JUnit은 @RepeatedTest 주석을 제공했습니다. 어떻게 사용할 수 있는지 봅시다.

import org.junit.jupiter.api.*;
public class TestManageEmployees {
@DisplayName("Checks the Repeated Tests")
    @RepeatedTest(value = 5, name = "Repeating {currentRepetition} of {totalRepetitions}")
    public void TestRepeatedTest() {
        System.out.println("This is a repetition test");
    }
}


보시다시피 @RepeatedTest에 두 개의 인수를 제공했습니다.
  • 값: 테스트를 실행할 횟수를 나타냅니다.
  • 이름: 각 반복마다 각 테스트를 식별하기 위해 지정할 수 있는 이름입니다.
    > currentRepetitiontotalRepetitions는 JUnit에서 사용하는 키워드입니다.

  • 테스트를 실행하면 다음과 같은 결과가 나타납니다.



    터미널의 왼쪽에서 각 반복의 고유한 이름을 볼 수 있고 오른쪽에서 예상한 대로 5번 인쇄된 인쇄 문을 볼 수 있습니다. 예, 테스트를 위한 약간 어리석은 예라는 것을 알고 있지만 개념을 이해하는 한 저는 그것에 만족합니다 😉

    조건부 실행



    조건부로 테스트를 실행하려는 인스턴스가 있을 수 있습니다. 예를 들어 특정 테스트 사례를 특정 운영 체제에서 실행하려고 할 수 있습니다. 이를 위해 JUnit은 두 가지 주석을 제공했습니다.
  • @EnabledOnOs
  • @DisabledOnOs

  • 그들의 사용법을 보자.

    @EnabledOnOs



    주석@EnabledOnOs은 특정 운영 체제에서 테스트 메서드를 실행하려는 경우에 사용됩니다. 다음 코드를 확인하십시오.

    import org.junit.jupiter.api.condition.EnabledOnOs;
    public class TestManageEmployees {
        @Test
        @DisplayName("Should Be Enabled Only On MAC OS")
        @EnabledOnOs(value = OS.MAC, disabledReason = "Test is only enabled on MAC OS")
        public void TestEnabledOnOS() {
            System.out.println("Tests EnabledOnOs annotation");
        }
    }
    


    보시다시피 @EnabledOnOs는 두 가지 인수를 취합니다.
  • 값: 테스트 방법을 실행하려는 OS입니다.
  • disabledReason: 테스트 메서드가 실행되지 않는 다른 운영 체제의 터미널에 표시되는 줄입니다.

  • Windows를 사용하고 있기 때문에 이 테스트는 내 컴퓨터에서 실행되지 않습니다. 따라서 내 출력은 다음과 같습니다.

    @DisabledOnOs



    주석@DisabledOnOs은 반대입니다. 특정 운영 체제에서 실행하고 싶지 않은 테스트 방법이 있을 때 사용합니다.

    import org.junit.jupiter.api.condition.DisabledOnOs;
    public class TestManageEmployees {
        @Test
        @DisplayName("Should Be Disabled On Windows")
        @DisabledOnOs(value = OS.WINDOWS, disabledReason = "Test is disabled on Windows")
        public void TestDisabledOnOS() {
            System.out.println("Tests DisabledOnOs annotation");
        }
    }
    

    @DisabledOnOs 주석도 동일한 두 인수를 취합니다.
  • 값: 테스트를 실행하지 않으려는 운영 체제.
  • disabledReason: value 섹션에서 지정한 다른 운영 체제의 터미널에 표시되는 행입니다.
    위의 테스트는 나에게 출력을 주었다



  • 이것으로 반복 가능하고 조건부 테스트에 대한 자습서를 마무리할 수 있습니다. 테스트 메서드에 매개변수를 전달하는 방법을 알고 싶습니까? 다음 튜토리얼을 확인하세요 - 😋

    좋은 웹페이지 즐겨찾기