728x90
@SpringBootTest와 @WebMvcTest는 스프링 부트 프레임워크에서 테스트를 작성할 때 사용되는 어노테이션이다. 둘 다 테스트를 쉽게 작성하고 테스트할 때 필요한 빈(Bean)들을 자동으로 로드하는 데 도움이 되지만, 사용하는 방식과 대상이 다르다.
@SpringBootTest
@SpringBootTest 어노테이션은 애플리케이션의 전체 컨텍스트를 로드하며, 통합 테스트를 작성할 때 사용된다. 따라서 모든 빈들이 로드되고 설정 파일들이 활성화된다.
데이터베이스나 메시징 시스템과 상호작용하는 경우, 실제로 실행되는 애플리케이션과 비슷한 환경에서 테스트를 수행할 수 있다.
애플리케이션의 여러 레이어를 테스트할 수 있으므로, 시스템의 통합성과 동작을 더 정확하게 테스트할 수 있다. 하지만 테스트가 느려질 수 있으며, 단위 테스트와 비교하면 더 많은 설정과 리소스가 필요하다.
@SpringBootTest
class MyIntegrationTest {
// 모든 빈들이 로드되고 설정이 활성화됨
// 통합 테스트 작성 가능
}
@WebMvcTest
@WebMvcTest 어노테이션은 웹 계층(Web layer) 테스트를 위해 사용된다. 주로 컨트롤러(Controller) 테스트에 사용된다. 웹 관련 빈들만 로드하여 가볍고 빠른 테스트를 가능하게 한다. 다른 컴포넌트들은 로드되지 않는다.
일반적으로 컨트롤러와 컨트롤러와 상호작용하는 서비스(Service) 빈들을 테스트할 때 사용된다. HTTP 요청과 응답을 테스트하여 웹 애플리케이션의 동작을 단위 테스트하는 데 적합하다.
@WebMvcTest(MyController.class)
class MyControllerTest {
// MyController와 관련된 빈들만 로드됨
// 가볍고 빠른 웹 계층 테스트 작성 가능
}
728x90
'Spring' 카테고리의 다른 글
Spring Rest Client (0) | 2023.07.25 |
---|---|
스프링 컨테이너 (Spring Container) (0) | 2023.07.24 |
의존성 주입(Dependency Injection, DI) (0) | 2023.07.23 |
(Spring Boot) AOP(Aspect Oriented Programming)를 이용한 예외처리 (0) | 2023.07.20 |