테스트 그룹 사이의 관계

@Nested

중첩된 테스트 클래스 테스트 시 @Nested를 사용하면 테스트 그룹 간의 관계를 다양한 방법으로 더 명확하게 표시할 수 있다.

@Nested 사용시 아래 내용들을 주의해야한다.

  • @Nested 클래스는 정적 클래스(static)이 아닌 내포된 클래스(inner class)여야한다.

  • Java는 이너 클래스 안에 static 멤버 변수를 두는 것을 허락하지 않기 때문에 기본 PER_METHOD 생명 주기에서는 @BeforeAll@AfterAll 이 동작하지 않는다.

  • @TestInstance(Lifecycle.PER_CLASS)로 클래스 단위로 인스턴스를 생성하는 경우에는 @BeforeAll@AfterAll를 사용할 수 있다.

@DisplayName("@Nested 테스트")
public class NestedClassTests {

    @Test
    @DisplayName("NestedCalssTest test")
    public void test() {
    }

    @Nested
    @DisplayName("Inner Test")
    class InnerTest {

        @DisplayName("InnerTest test")
        @Test
        void test() {

        }

        @Nested
        @DisplayName("Inner Inner Test")
        class InnerInnerTest{
            @DisplayName("InnerInnerTest test")
            @Test
            void test() {

            }
        }
    }
}

참고

Last updated