상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - JUnit의 @TestInstance 애너테이션의 용도는?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
JUnit에서 @TestInstance 애너테이션은 테스트 클래스의 인스턴스 생성 방식을 지정하는 데 사용됩니다. 기본적으로 JUnit 5는 각 테스트 메서드 실행 시마다 새로운 테스트 클래스 인스턴스를 생성하는 방식을 사용합니다. 이는 테스트 메서드 간에 상태가 공유되는 것을 방지하고, 테스트의 독립성을 보장하기 위한 설계입니다. 하지만 때로는 테스트 클래스 내의 여러 테스트 메서드가 같은 상태를 공유하거나, 초기화 비용이 큰 객체를 재사용해야 할 필요가 있습니다. 이럴 때 @TestInstance 애너테이션을 사용해서 인스턴스 생성 방식을 변경할 수 있습니다. @TestInstance는 주로 두 가지 모드를 지원합니다: 1. PER_METHOD (기본값) - JUnit이 각 테스트 메서드를 실행할 때마다 새로운 테스트 클래스 인스턴스를 생성합니다. - 테스트 메서드 간 상태 공유가 없고 독립적인 실행이 보장됩니다. - @BeforeEach, @AfterEach 같은 메서드에서는 항상 새로운 인스턴스의 상태를 다룹니다. 2. PER_CLASS - 테스트 클래스 당 하나의 인스턴스만 생성하고, 모든 테스트 메서드는 동일한 인스턴스에서 실행됩니다. - 이를 통해 테스트 메서드 간에 인스턴스 변수 등 상태를 공유할 수 있습니다. - 초기화 비용이 큰 객체를 필드에 할당하고 재사용하기 유리합니다. - 그러나 테스트 간 상태가 공유되므로 테스트 독립성에 주의가 필요합니다. - 또한 PER_CLASS 모드에서는 `@BeforeAll`과 `@AfterAll` 메서드가 정적(static)일 필요가 없으며, 인스턴스 메서드로도 선언할 수 있게 됩니다. 요약하면, @TestInstance 애너테이션은 JUnit 5 테스트 클래스 인스턴스의 생명 주기(생성 시기와 횟수)를 제어하여, 테스트 메서드 간 상태 공유 여부 및 초기화 전략을 선택하는 역할을 합니다. PER_CLASS 모드를 선택하면 여러 테스트가 같은 인스턴스를 공유하여 상태 유지가 가능하고, 초기화 비용을 절감할 수 있지만, 테스트 독립성 관리에 신경 써야 합니다. PER_METHOD 모드는 기본 설정으로 각 테스트를 완전하게 독립적으로 실행합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기