Spring Boot 2.2 이상으로 프로젝트를 생성하게 되면 자동으로 spring-boot-starter-test
에서 JUnit5가 자동으로 추가된다.
클래스와 테스트 메소드에 public을 넣지 않아도 된다.
import org.junit.jupiter.api.*;
public class TestLifeCycle {
/**
* 모든 테스트가 실행되기 전에 반드시 한번 실행됨
* static 메소드이어야 한다.
*/
@BeforeAll
static void beforeAll(){
System.out.println("## Before All !!!!");
}
/**
* 모든 테스트가 실행된 후에 반드시 한번 실행됨
* static 메소드이어야 한다.
*/
@AfterAll
static void afterAll(){
System.out.println("## After All !!!!");
}
/**
* 특정 테스트가 실행되기 전에 항상 실행됨
*/
@BeforeEach
void beforeEach(){
System.out.println("## Before Each !!!!");
}
/**
* 특정 테스트가 실행된 후에 항상 실행됨
*/
@AfterEach
void afterEach(){
System.out.println("## After Each !!!!");
}
@Test
@DisplayName("TTTTTest1")
void test1(){
System.out.println("----Test1111111----");
}
@Test
@DisplayName("TTTTTest2")
void test2(){
System.out.println("----Test222222----");
}
@Test
@Disabled
@DisplayName("TTTTTest3")
void test3(){
System.out.println("----Test333333----");
}
}
어노테이션 설명이 조금 이상한 것 같은데, @BeforeAll 등의 어노테이션이 달린 메소드가 테스트가 맞나요?