본문 바로가기
개발/Spring

[Junit5] org.junit.platform.commons.JUnitException: @BeforeAll method must be static unless the test class is annotated with @TestInstance(Lifecycle.PER_CLASS).

by 상용최 2020. 11. 9.
반응형

요즘 TDD에 관심이 있어서 Junit5를 사용해보려고 한다.

테스트코드전에 실행되어야 하는 로직이 있어서 @BeforeAll을 사용하고자 했다.

public class TddTest {

    @BeforeAll
    public void memberInit(){
        System.out.println("Junit BeforeAll");
    }
    @Test
    public void memberDomainTest() throws Exception{
        System.out.println("TestCode 1");
    }

}

 

하지만 아래와 같은 오류가 발생했다.

org.junit.platform.commons.JUnitException:@BeforeAll method  must be static unless the test class is annotated with @TestInstance(Lifecycle.PER_CLASS)

 

 

원인은 간단했다.

@BeforeAll 이 붙은 method는 static이어야한다.

코드를 아래와 같이 바꾸면 정상적으로 동작한다.

public class TddTest {

    @BeforeAll
    public static void memberInit(){
        System.out.println("Junit BeforeAll");
    }
    @Test
    public void memberDomainTest() throws Exception{
        System.out.println("TestCode 1");
    }

}

 

반응형

댓글