아래의 예제 대로 실행을 하면 Before, test,After 가 순차적으로 진행이 되어야한다.

public class BeforeAfter {

    @Before
    public void SetUp(){
        System.out.println("Before");
    }

    @Test
    void transformation() {
        System.out.println("test");
    }
    @After
    public void after(){
        System.out.println("After");
    }

}

하지만 test 밖에 출력이 되지 않았다. 왜 그런걸까 찾아보니 JUnit5 에서는 @Before, @After 가 @BeforeEach, @AfterEach 로 설정을 해야한다.

JUnit5 의 어노테이션으로 아래의 코드로 다시 실행을 하니 다시 실행이 된다.

public class BeforeAfter {

    @BeforeEach
    public void SetUp(){
        System.out.println("Before");
    }

    @Test
    void transformation() {
        System.out.println("test");
    }
    @AfterEach
    public void after(){
        System.out.println("After");
    }

}

SpringBoot에서 JUnit이 몇버전인지 알고 싶을때 아래로 확인하고 변경하면 된다.

생각없이 그냥 springInitializer에서 다운을 받으면 아래와 같은 설정이 있는데, springboot-2.2.X 이후부터는 Junit5로 설정이 되어있는 것 같다.

    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.2-Release-Notes

+ Recent posts