쌓고 쌓다
@BeforeAll, @AfterAll non-static 메서드로 호출하는법 본문
테스트 코드를 작성하며 초기 데이터가 필요하여 생성하여 디비에 저장하고 테스트가 끝난후 삭제하는 과정이 필요했다.
쉽게 말해서 테스트 코드를 실행하기 전과 후에 딱 한번 실행할 함수가 필요했다.
거기에 좋은 @BeforeAll, @AfterAll 어노테이션이 있어 사용하려고 한다.
그러나 이 어노테이션들은 static 메서드에 붙이고 사용해야 했다.
왜 static 이여야할까...?
JUnit5에서 테스트 클래스의 Life Cycle은 기본값이 PER_METHOD이다.
즉, 테스트 클래스는 하나의 테스트 메서드가 끝나고 다시 클래스가 생성된다.
그래서 static으로 선언해야지 클래스 내부 요소들을 유지할 수 있는 것이다.
다음과 같이 테스트 클래스의 Life Cycle을 클래스단위로 바꿔주자.
다음은 생명 주기에 따른 테스트 클래스의 메서드가 호출되는 순서이다.
'프로그래밍 > spring' 카테고리의 다른 글
Spring Security 404 에러 대신 401 에러 뜰때 (1) | 2024.01.28 |
---|---|
REST API 테스트 코드 작성하기 with MockMVC (0) | 2024.01.27 |
consumes, produces와 Content-Type 예외 처리 방법 (1) | 2024.01.25 |
Spring Security 인증/인가 예외 JSON 처리 (1) | 2024.01.24 |
Enum 타입으로 에러 메시지 및 응답 관리하기 (0) | 2024.01.24 |
Comments