05.12 TIL (@SpringBootTest와 @WebMvcTest의 차이점)

2023. 5. 12. 12:42개발일지

  • @SpringBootTest는 애플리케이션의 전체 컨텍스트를 로드하는 테스트를 위해 사용되며, 애플리케이션의 모든 빈과 구성 요소를 로드하므로, 주로 통합 테스트에 사용된다.
  • 실제 애플리케이션과 유사한 환경을 구성하며, 외부 의존성이나 설정과 관련된 테스트를 수행할 때 유용하며, 단위 테스트가 아니기 때문에 테스트의 실행 시간이 더 오래 걸릴 수 있다.
  • @WebMvcTest는 웹 계층 컴포넌트인 컨트롤러(Controller)를 테스트하는데 사용되며, 애플리케이션의 일부만 로드하므로, 주로 컨트롤러와 관련된 단위 테스트에 사용된다.
  • 웹 계층 관련 빈들만 로드하며, 서비스나 레포지토리와 같은 다른 빈들은 로드되지 않으며, HTTP 요청 및 응답을 시뮬레이션하여 컨트롤러 동작을 테스트하는데 특화되어 있다.
  • 테스트 실행 시간이 짧고, 주로 컨트롤러의 동작 검증에 집중할 수 있다.
  • 즉, @SpringBootTest는 애플리케이션의 전체 컨텍스트를 로드하여 통합 테스트에 사용되는 반면, @WebMvcTest는 웹 계층 컴포넌트인 컨트롤러에 초점을 맞춘 단위 테스트에 사용된다. 또한 Web Layer 관련 빈만 로드하기 때문에, 속도가 @SpringBootTest보다 빠르다.

'개발일지' 카테고리의 다른 글

05.15 TCP와 UDP의 공통점과 차이점  (0) 2023.05.15
05.15 Transaction  (0) 2023.05.15
05.12 TIL (Rest Client)  (0) 2023.05.12
05.11 TIL (항해99 4일차 과제)  (0) 2023.05.11
제네릭  (0) 2023.05.10