우선은 가져온곳
나중에 참조한곳 많아지면 감사히 참조로 바꾸자
@Before @BeforeClass @BeforeEach @BeforeAll
Spring 에서 테스트 코드를 작성할 때, 모든 테스트 코드 전에 반복적으로 해 주어야 하는 작업이 필요할 때가 있습니다.
예를 들어, 사용자 인증이 선행되어야 하는 테스트의 경우, 매 테스트 코드마다 인증하는 코드를 넣어야 합니다.
public class Test {
@Test
public void test1(){
authenticateForTest(); // login
System.out.println("test 1");
}
@Test
public void test2(){
authenticateForTest(); // login
System.out.println("test 2");
}
private void authenticateForTest() {
System.out.println("authenticate");
}
}
JUnit 에서는 이런 반복적인 코드를 없애기 위해 @Before 어노테이션을 제공합니다.
이 어노테이션에도 여러 종류가 있는데 간단하게 요약하면 아래와 같습니다
@Before (JUnit 4), @BeforeEach (JUnit 5)
클래스 내에 존재하는 각각의 @Test 를 실행하기 전에 매번 실행
@BeforeClass (JUnit 4), @BeforeAll (JUnit 5)
모든 테스트를 실행하기 전 딱 한번만 실행
static 으로 선언해야 함
Example
public class Test {
@BeforeAll
public static void beforeAll() {
System.out.println("@BeforeAll");
}
@BeforeEach
public void beforeEach() {
System.out.println("@BeforeEach");
}
@Test
public void test1(){
System.out.println("@Test 1");
}
@Test
public void test2(){
System.out.println("@Test 2");
}
@AfterEach
public void afterEach() {
System.out.println("@AfterEach");
}
@AfterAll
public static void afterAll() {
System.out.println("@AfterAll");
}
}
전체 플로우
@BeforeAll
.
@BeforeEach
@Test 1
@AfterEach
.
@BeforeEach
@Test 2
@AfterEach
@AfterAll