상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
궁금한 상식 보기
HMAC의 해시 알고리즘을 변경할 때의 주의사항은 무엇인가요?
크록스란 무엇인가요?
크록스를 착용한 유명한 광고 캠페인은 무엇인가요?
크록스의 패션쇼 참가 여부는 어떤가요?
덴마크에서의 여행 시 가장 좋은 시기는 언제인가요?
덴마크의 유명한 문학 작품은 어떤 것이 있나요?
등산 시 필요한 기본 장비는 무엇인가요?
등산 중에 필요한 기본적인 장비 점검 방법은 무엇인가요?
침사추이에서의 여행 중 추천하는 음악 장르는 무엇인가요?
침사추이에서의 여행 중 추천하는 여행 코스는 무엇인가요?
사투리의 특징적인 억양은?
멀티스레딩이란 무엇인가요?
Previous
Next
수정하기 - JUnit의 테스트 케이스 수명주기란 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
JUnit의 테스트 케이스 <a href='https://sangseek.com/sangseeks/수명주기/ko'>수명주기</a>는 테스트 코드가 실행되는 동안 테스트 환경이 어떻게 준비되고 실행되고 정리되는지를 뜻합니다. 즉, 하나의 테스트 메서드가 실행되기 전과 후에 어떤 단계들이 수행되는지를 이해하는 것이 핵심입니다. JUnit 4와 JUnit 5를 기준으로 공통적이고 중요한 수명주기 단계를 설명하면 다음과 같습니다. 1. 테스트 클래스 인스턴스 생성 테스트 클래스 내의 테스트 메서드를 실행하기 위해서 JUnit은 기본적으로 테스트 클래스의 인스턴스를 생성합니다. JUnit 4에서는 각 테스트 메서드 실행 시마다 새로운 인스턴스가 만들어지기 때문에 각 테스트는 독립적인 상태를 가집니다. 반면 JUnit 5에서는 `@TestInstance` 어노테이션을 통해 인스턴스 생성 방식을 조정할 수 있습니다 (기본값은 `PER_METHOD`). 2. `@BeforeAll` 메서드 실행 (JUnit 5 기준) / `@BeforeClass` (JUnit 4) 테스트 클래스 내의 모든 테스트가 실행되기 전에 한 번만 실행되는 정적 메서드입니다. 주로 데이터베이스 <a href='https://sangseek.com/sangseeks/커넥션/ko'>커넥션</a> 설정, 전역 리소스 초기화와 같이 클래스 전체 테스트에 공통적인 작업을 수행합니다. JUnit 4에서는 반드시 `static` 메서드이어야 하지만, JUnit 5에서는 테스트 인스턴스 수명주기와 맞춰 `static`이 아닐 수도 있습니다. 3. `@BeforeEach` 메서드 실행 (JUnit 5) / `@Before` (JUnit 4) 각 테스트 메서드 실행 전마다 호출됩니다. 테스트 메서드가 독립적으로 실행되기 위해 필요한 초기화 작업을 수행하는 곳입니다. 예를 들어, 테스트별로 필요한 객체 초기화, 테스트 데이터 세팅 등을 할 때 사용합니다. 4. 테스트 메서드 실행 (`@Test` 어노테이션이 붙은 메서드) 실제 테스트 로직이 실행되는 단계입니다. 테스트 대상 메서드를 호출하여 예상 결과와 실제 결과가 일치하는지 검증(assertion)합니다. 5. `@AfterEach` 메서드 실행 (JUnit 5) / `@After` (JUnit 4) 각 테스트 메서드 실행이 끝난 후 매번 호출되어, 테스트 실행 과정에서 생성된 리소스를 해제하거나 상태를 초기화하는 역할을 합니다. 예를 들어, 임시 파일 삭제, 객체 상태 초기화 등입니다. 6. `<a href='https://sangseek.com/sangseeks/@AfterAll/ko'>@AfterAll</a>` 메서드 실행 (JUnit 5) / `@AfterClass` (JUnit 4) 테스트 클래스 내 모든 테스트 메서드가 실행된 후 단 한 번 호출됩니다. 주로 클래스 단위로 공유한 리소스(예: 데이터베이스 연결)를 정리하거나 종료 작업을 수행합니다. JUnit 4에서는 `static` 메서드여야 합니다. 보조 설명 - 이러한 수명주기 메서드들은 테스트 실행 환경을 깔끔하고 일관성 있게 유지하기 위한 역할을 합니다. - JUnit 5에서 지원하는 `@TestInstance` 어노테이션을 활용하면 테스트 클래스의 인스턴스 생성 방식을 변경하여, 한번 생성된 테스트 인스턴스를 여러 테스트 메서드가 공유하도록 할 수도 있습니다. 이 경우 상태 공유 주의가 필요합니다. - 예외 처리, 조건부 실행(`@Disabled`, `@EnabledIf`), 반복 실행(`@RepeatedTest`), 파라미터화 테스트 등 다양한 확장 기능은 기본적인 수명주기 외에 추가적인 실행 흐름을 제공합니다. --- 요약하자면, JUnit 테스트 케이스 수명주기는 테스트 클래스 준비(`@BeforeAll`), 각 테스트 준비 및 실행(`@BeforeEach` -> `@Test` -> `@AfterEach`), 테스트 클래스 정리(`@AfterAll`)의 순서로 진행되며, 이를 통해 테스트의 격리성 유지와 테스트 환경의 안정성을 담보합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기