Java

[Spring] @AfterEach, @BeforeEach

bornsoon 2025. 6. 3. 20:35

스프링부트에서 테스트를 위해 @Test 어노테이션을 붙인 메서드들을 한꺼번에 실행할 때, 메서드의 순서는 보장되지 않는다. 

따라서 다음과 같은 작업을 해주어야 한다.

 

테스트에 사용되는 데이터는 각 테스트가 종료되면 같이 지워져야 다음 테스트에서 오류가 안난다. 

  • 테스트가 종료되면 생성한 데이터를 모두 삭제하는 코드를 @AfterEach가 붙은 메서드에 넣어주면 된다.
@AfterEach
public void afterEach() {
	// 삭제하는 코드
}

 


반대로 테스트에 사용되는 데이터가 미리 존재해야하는 경우 

  • 테스트가 실행되기 전에 실행되어야 하는 코드를 @BeforeEach가 붙은 메서드에 넣어주면 된다.
@BeforeEach
public void beforeEach() {
	// 테스트 전 실행되어야 하는 코드
}

 

 

이 외에도 JUnit의 @Test 외의 다음과 같은 테스트 관련 어노테이션이 있다.

  • @BeforeAll - 테스트 전, 딱 한 번 실행됨.
  • @BeforeClass - 테스트 클래스에 속한 모든 테스트 메서드 전에 한 번만 실행 (주로 초기화 작업)
  • @AfterAll - 테스트 후, 딱 한 번 실행됨.
  • @Disabled - 이 어노테이션이 붙은 테서트 메서드는 무시한다.
728x90