상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - JUnit의 @AfterAll 애너테이션의 사용법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
JUnit에서 @AfterAll 애너테이션은 테스트 클래스 내에 정의된 모든 테스트 메서드가 실행된 이후에 단 한 번 실행되는 메서드에 붙입니다. 주로 테스트가 끝난 후에 리소스 해제나 정리 작업(clean-up)을 수행하는 데 사용합니다. @AfterAll 메서드의 주요 특징과 사용법은 다음과 같습니다: 1. 실행 타이밍 - 클래스 내에 정의된 모든 테스트(@Test) 메서드가 종료된 뒤 단 한 번 실행된다. - 이는 테스트 클래스의 테스트 메서드들이 모두 성공 또는 실패 여부와 상관없이 무조건 마지막에 호출된다. 2. 메서드의 선언 조건 - 기본적으로 JUnit 5에서 @AfterAll 메서드는 `static`이어야 한다. - 즉, 메서드 선언 시 `public static void`와 같이 static 키워드를 붙여야 한다. - JUnit 5.7 버전부터는 `@TestInstance(TestInstance.Lifecycle.PER_CLASS)`를 클래스에 붙이는 경우, 해당 테스트 인스턴스가 클래스별로 생성되므로 @AfterAll 메서드를 `static`이 아닌 일반 인스턴스 메서드로도 선언할 수 있다. 3. 예외 처리 - 메서드 내에서 예외가 발생할 경우, 다른 테스트 메서드들의 실행 결과와는 별개로 예외가 보고된다. - 주로 정리 작업이므로 예외가 발생하면 로그로 남기거나 예외를 적절히 처리하는 것이 좋다. 4. 기본적인 예시 ```java import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; @TestInstance(TestInstance.Lifecycle.PER_CLASS) // static 없이 가능 public class ExampleTest { @Test void testOne() { System.out.println("Test 1 실행"); } @Test void testTwo() { System.out.println("Test 2 실행"); } @AfterAll void cleanup() { System.out.println("모든 테스트 후 정리 작업 수행"); } } ``` 위 예시처럼 `@TestInstance` 애너테이션으로 라이프사이클을 PER_CLASS로 지정하면 `@AfterAll` 메서드를 인스턴스 메서드로 작성 가능하다. 반면 별도의 `@TestInstance` 지정이 없으면 아래처럼 static이어야 한다: ```java import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.Test; public class StaticAfterAllTest { @Test void testMethod() { System.out.println("테스트 실행"); } @AfterAll public static void tearDown() { System.out.println("모든 테스트 종료 후 정리"); } } ``` 5. 주요 사용 사례 - 데이터베이스 연결 종료 - 리소스(파일, 네트워크 등) 해제 - 임시 데이터 정리 - 외부 서비스 세션 종료 요약하면, JUnit의 `@AfterAll` 애너테이션은 테스트 클래스 내 모든 테스트 실행 완료 후 한 번 호출되어 <a href='https://sangseek.com/sangseeks/리소스 정리/ko'>리소스 정리</a> 작업 등을 수행하는 데 사용되며, 기본적으로 static 메서드에 붙이지만 테스트 인스턴스 라이프사이클을 변경하면 인스턴스 메서드에도 적용할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기