본문 바로가기
Framekwork/SPRING

[SPRING] @BeforeEach @AfterEach 어노테이션

by 아이엠제니 2024. 4. 17.

 


 

 

 

  • `@BeforeEach`와 `@AfterEach`는 JUnit 프레임워크의 어노테이션을 이용하여 테스트 전후에 실행되는 메서드를 정의할 때 사용됨
  • 테스트 클래스 내의 각각의 테스트 메서드 실행 전후에 필요한 설정 및 정리 작업을 수행할 때 활용됨

 

 

@BeforeEach

  • 각각의 테스트 메서드가 실행되기 전에 실행되는 메서드를 표시함
  • 각각의 테스트 메서드 실행 전에 필요한 초기화 작업을 수행할 수 있음
  • 데이터베이스 연결을 설정하거나 객체를 초기화하는 등의 작업을 할 수 있음
    @BeforeEach
    public void beforeEach() {
        memoryMemberRepository = new MemoryMemberRepository();
        memberService = new MemberService(memoryMemberRepository);
    }

 

 

 

@AfterEach

  • 각각의 테스트 메서드가 실행된 후에 실행되는 메서드를 표시함
  • 각각의 테스트 메서드 실행 후에 자원을 정리하거나 후속 작업을 수행할 수 있음
  • 데이터베이스 연결을 닫거나 테스트에 사용한 객체들을 해제하는 등의 작업을 할 수 있음
    @AfterEach
    public void afterEach() {

        memoryMemberRepository.clearStore();
    }

 

💾 MemoryMemberRepository.java

public class MemoryMemberRepository implements MemberRepository {

private static Map<Long, Member> store = new HashMap<>();

.
.
.

    public void clearStore() {
        store.clear();
    }
}

 

 

💡 clear()

  • 데이터를 초기화하거나 리소스를 정리하는 용도
  • 관련된 영속성 컨텍스트나 세션의 상태가 초기화되거나 클리어되는 작업을 수행함

 

 

 

참고
인프런 `스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술` 강의
OpenAi. (2024) ChatGPT (version 3.5)[Large Language model]. https://chat.openai.com

 

 

 

300x250