스프링부트에서 테스트를 위해 @Test 어노테이션을 붙인 메서드들을 한꺼번에 실행할 때, 메서드의 순서는 보장되지 않는다.
따라서 다음과 같은 작업을 해주어야 한다.
테스트에 사용되는 데이터는 각 테스트가 종료되면 같이 지워져야 다음 테스트에서 오류가 안난다.
- 테스트가 종료되면 생성한 데이터를 모두 삭제하는 코드를 @AfterEach가 붙은 메서드에 넣어주면 된다.
@AfterEach
public void afterEach() {
// 삭제하는 코드
}
반대로 테스트에 사용되는 데이터가 미리 존재해야하는 경우
- 테스트가 실행되기 전에 실행되어야 하는 코드를 @BeforeEach가 붙은 메서드에 넣어주면 된다.
@BeforeEach
public void beforeEach() {
// 테스트 전 실행되어야 하는 코드
}
이 외에도 JUnit의 @Test 외의 다음과 같은 테스트 관련 어노테이션이 있다.
- @BeforeAll - 테스트 전, 딱 한 번 실행됨.
- @BeforeClass - 테스트 클래스에 속한 모든 테스트 메서드 전에 한 번만 실행 (주로 초기화 작업)
- @AfterAll - 테스트 후, 딱 한 번 실행됨.
- @Disabled - 이 어노테이션이 붙은 테서트 메서드는 무시한다.
728x90
'Java' 카테고리의 다른 글
[Java] Iterator와 ListIterator (1) | 2025.06.07 |
---|---|
[Java] AtomicLong (0) | 2025.06.03 |
[Java] ConcurrentHashMap (0) | 2025.06.03 |
[Java] split와 정규식 (0) | 2025.05.31 |
[Java] next() & nextLine() (0) | 2025.05.27 |