@SpringBootTest
class ApplicationTests {
@BeforeEach
void setUp() {
System.out.println("BeforeEach 실행");
}
@Test
void test1() {
System.out.println("테스트1 실행");
}
@Test
void test2() {
System.out.println("테스트2 실행");
}
}
- 실행 결과 -
BeforeEach 실행
테스트1 실행
BeforeEach 실행
테스트2 실행
즉, @Test에노테이션이 붙은 테스트 메서드가 실행되기 전에 해야할 작업들을 먼저 처리하는 용도로 사용하면 됨.
@BeforeEach는 각 테스트간의 독립성을 위해 각 테스트 메서드가 실행될 때마다 초기화 되어야 하는작업 등을 설정하기 위해 사용함.
close() 메서드)가 생기는데 이럴때 사용하면 유용함.@SpringBootTest
class ApplicationTests {
@AfterEach
void teardown() {
System.out.println("AfterEach 실행");
}
@Test
void test1() {
System.out.println("테스트1 실행");
}
@Test
void test2() {
System.out.println("테스트2 실행");
}
}
- 실행 결과 -
테스트1 실행
AfterEach 실행
테스트2 실행
AfterEach 실행
@BeforeAll을 사용하면 테스트가 실행되기 전 단 한번만 실행돼서 모든 테스트에 필요한 데이터를 제공할 때 또는 테스트에서 사용할 불변값을 세팅할 때 사용함.@SpringBootTest
class ApplicationTests {
@BeforeAll
static void BeforeAllTest() {
System.out.println("BeforeAll 실행");
}
@Test
void test1() {
System.out.println("테스트1 실행");
}
@Test
void test2() {
System.out.println("테스트2 실행");
}
}
- 실행결과 -
BeforeAll 실행
테스트1 실행
테스트2 실행
@AfterAll은 모든 테스트의 실행이 끝난 이후 단 한번만 실행됨.@SpringBootTest
class ApplicationTests {
@AfterAll
static void BeforeAllTest() {
System.out.println("AfterAll 실행");
}
@Test
void test1() {
System.out.println("테스트1 실행");
}
@Test
void test2() {
System.out.println("테스트2 실행");
}
}
- 실행결과 -
테스트1 실행
테스트2 실행
AfterAll 실행
@SpringBootTest
class ApplicationTests {
@BeforeEach
void setUp() {
System.out.println(this);
}
@Test
void test1() {
System.out.println("테스트1 실행");
}
@Test
void test2() {
System.out.println("테스트2 실행");
}
}
- 실행결과 -
com.project.ApplicationTests@3bd1c7f0
테스트1 실행
com.project.ApplicationTests@6b6d8671
테스트2 실행
@BeforeAll과 @AfterAll은 모든 개별 테스트 인스턴스들이 생성되기 전이나 모두 소멸된 후에 단 한 번만 실행되어야 하는 메서드임.