상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - JUnit 5에서 @ExtendWith 애너테이션의 용도는?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
JUnit 5에서 `@ExtendWith` 애너테이션은 테스트 클래스나 테스트 메서드에 확장 기능을 적용하기 위해 사용됩니다. JUnit 5는 확장 모델(Extension Model)을 도입하여 테스트 실행 과정 중에 특정 기능을 삽입하거나 테스트 환경을 커스터마이징할 수 있도록 설계되었는데, `@ExtendWith`가 바로 이 확장 기능을 활성화하는 역할을 합니다. 주요 역할과 용도 1. 확장 등록 `@ExtendWith`는 JUnit 5의 확장 인터페이스(예: `BeforeEachCallback`, `AfterEachCallback`, `TestExecutionExceptionHandler`, `ParameterResolver` 등)를 구현한 클래스를 테스트에 연결합니다. 이를 통해 테스트 실행 전후에 특정 로직을 실행하거나, 테스트 메서드에 파라미터를 주입하는 등의 동작을 수행할 수 있습니다. 2. 테스트 실행 환경 커스터마이징 확장을 통해 테스트의 실행 방식이나 결과 확인 방식을 변경할 수 있습니다. 예를 들어, 테스트 시작 전 초기화 작업을 수행하거나, 테스트 실패 시 추가 로깅을 한다거나, 특정 조건에서만 테스트를 실행하도록 하는 등 유연한 제어가 가능합니다. 3. 내장 및 외부 확장 기능 적용 JUnit 5에서는 자체적으로 제공하는 확장 기능뿐 아니라, 서드파티 라이브러리에서 제공하는 확장 기능을 `@ExtendWith`로 붙여 사용할 수 있습니다. 예를 들어, Mockito의 `MockitoExtension`이나 Spring의 `SpringExtension` 등을 테스트 클래스에 적용하여 Mockito 모ocking 기능이나 Spring 컨텍스트 관리를 자동으로 수행하게 만들 수 있습니다. 4. 메타 애너테이션으로 활용 가능 개발자는 `@ExtendWith`를 포함한 커스텀 애너테이션을 만들어, 여러 확장을 한꺼번에 재사용할 수 있습니다. 예를 들어 여러 확장을 묶어 새로운 테스트 설정 애너테이션을 정의할 때 유용합니다. 사용 예시 ```java @ExtendWith(MockitoExtension.class) class MyServiceTest { @Mock private Dependency dependency; @InjectMocks private MyService myService; @Test void testServiceMethod() { // 테스트 코드 } } ``` 위 예제에서 `@ExtendWith(MockitoExtension.class)`는 Mockito의 확장 기능을 테스트에 등록하여 `@Mock`, `@InjectMocks` 애너테이션이 제대로 동작하도록 돕습니다. --- 요약하자면, JUnit 5의 `@ExtendWith` 애너테이션은 테스트의 실행 과정에 특정 확장 기능을 연결해서 테스트 환경을 확장하고 커스터마이즈하는 데 사용되는 핵심 애너테이션입니다. 다양한 확장 포인트에 원하는 기능을 삽입할 때 반드시 쓰이는 방법이며, 이를 통해 보다 유연하고 강력한 테스트를 작성할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기