@SpringBootTest 어노테이션은 전체 Spring 컨텍스트를 로드하여 통합 테스트를 수행한다. 이 어노테이션은 애플리케이션의 거의 모든 부분을 테스트할 수 있도록 설정된다.
Spring Boot의 장점 중 하나는 'Test Slice'라는 개념이다. Spring Boot는 모든 테스트에 대해 전체 Application Context를 부트스트랩하는 대신 @DataJpaTest 및 @WebMvcTest와 같은 Test Annotation을 도입하여 특정 테스트에 필요한 애플리케이션 컨텍스트 부분만 초기화한다. 이 접근 방식은 테스트의 속도를 높일 뿐만 아니라 집중적이고 효율적인 테스트 환경을 보장한다.
Spring Boot는 테스트에 특별히 맞춤화된 도구와 기능을 제공함으로써 개발자가 고품질 코드를 유지하고, 회귀를 조기에 포착하며, 자신 있게 애플리케이션을 반복적으로 개선할 수 있도록 보장합니다.
@WebMvcTest 어노테이션은 Spring MVC 컴포넌트를 테스트하는 데 사용된다. 이 어노테이션은 Spring MVC 컴포넌트만 로드하며, 다른 Bean들은 로드되지 않는다.
@DataJpaTest 어노테이션은 JPA(즉, Spring Data JPA)와 관련된 컴포넌트들을 테스트하는 데 사용된다. 이 어노테이션은 엔티티 매핑, 리포지토리와 같은 데이터 레이어 테스트에 최적화되어 있다.