2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

@BeforeAll

작성: sangseek | 게시 날짜: 2025/12/18 | 조회수: 44
[ 편집불가 ]

JUnit(Jupiter)에서의 @BeforeAll은 테스트 클래스의 모든 테스트 메서드보다 먼저 한 번만 실행되는 초기화용 메서드임을 표시하는 애노테이션입니다. 주요 내용: - 실행 시점: 같은 테스트 클래스 안의 어떤 @Test 메서드보다 먼저, 한 번만 호출됩니다. (@BeforeEach는 각 테스트마다 실행되는 것과 대조) - 기본 요구사항: 애노테이션이 붙은 메서드는 기본적으로 static이어야 합니다. 예: @BeforeAll static void setUpOnce() { /* 공통 자원 초기화 */ } - non-static 사용: 클래스 단위 인스턴스 생명주기(TestInstance.Lifecycle.PER_CLASS)를 설정하면 static이 아닌 메서드도 허용됩니다. 예: @TestInstance(TestInstance.Lifecycle.PER_CLASS) class MyTests { @BeforeAll void setUpOnce() { /* 인스턴스 필드 접근 가능 */ } } - 상속 관계: 슈퍼클래스의 @BeforeAll는 서브클래스의 @BeforeAll보다 먼저 실행됩니다. - 실패 처리: @BeforeAll에서 예외가 발생하면 테스트 클래스의 실행이 중단되고 해당 클래스의 테스트들은 실행되지 않을 수 있습니다. - 용도: 데이터베이스 연결 설정, 외부 서버 시작, 비용이 큰 공통 리소스 초기화 등 테스트 클래스 전체에서 공유할 자원 설정에 적합합니다. 참고: TestNG 등 다른 프레임워크에서는 유사한 역할을 하는 애노테이션(@BeforeClass 등)이 있으나 이름과 동작 세부가 약간 다를 수 있습니다.
내용이 부정하다면 싫어요를 누르세요.