728x90
@ExtendWith
- JUnit5 부터 '@RunWith' 어노테이션이 '@ExtendWith' 로 대체 되었다.
- 이를 사용해 JUnit 테스트 에서 특정 확장 기능을 활성화할 수 있다.
EX) @ExtendWith(SpringExtension.class)
SpringExtension.class
- 스프링 프레임워크에서 제공하는 JUnit5 확장 기능
- JUnit5 테스트 실행에 스프링 테스트 컨텍스트를 통합하고 관리하는 역할
- 스프링의 테스트 관련 기능을 JUnit5 환경에서 활용할 수 있도록 도와줌.
테스트가 실행될 때, SpringExtension은 다음과 같은 작업을 수행합니다:
- 스프링 애플리케이션 컨텍스트의 로딩과 캐싱: 테스트가 스프링 설정을 기반으로 실행될 수 있도록 애플리케이션 컨텍스트를 로드하고, 효율적인 테스트 실행을 위해 이를 캐시합니다.
- 의존성 주입: 스프링 관리 하에 있는 빈들을 테스트 코드에서 자동으로 주입받을 수 있게 합니다. 이를 통해 컨트롤러, 서비스, 리포지토리 등의 스프링 빈을 테스트 내에서 직접 사용할 수 있습니다.
- 트랜잭션 관리: 테스트가 데이터베이스와 상호 작용하는 경우, SpringExtension은 테스트가 시작될 때 트랜잭션을 시작하고, 테스트가 끝나면 트랜잭션을 롤백하는 등의 작업을 통해 테스트 간 데이터 격리를 보장합니다.
- 테스트 수명 주기 콜백: @BeforeAll, @BeforeEach, @AfterEach, @AfterAll 등의 테스트 수명 주기에 맞춰 스프링 빈의 생성과 소멸을 적절히 관리합니다.
728x90
'Spring' 카테고리의 다른 글
[Spring + IntelliJ] Generated source files should not be edited 경고 메시지 (0) | 2024.01.25 |
---|---|
[Querydsl] SpringBoot 3.2.x Querydsl 설정하기 (문제 / 해결) (0) | 2024.01.22 |
[Spring + API] 컬렉션 엔티티를 조회 + 페이징 (0) | 2024.01.01 |
[Spring] ComponentScan (컴포넌트 스캔) (0) | 2023.11.18 |
[Spring] 싱글톤(Singleton) 과 스프링 컨테이너 (0) | 2023.11.12 |