오늘 할일

  • 스프링 학습
    • exception handler
    • dispatcher servlet
    • SpringBootTest, WebMvcTest
  • 테코톡 진행

@SpringBootTest vs @WebMvcTest

@SpringBootTest의 기본 설정인 WebEnvironment=Mock 설정과 @WebMvcTest를 사용하는 테스트는 둘 다 실제 서버를 구동하지 않고 웹 환경울 구성하여 테스트할 수 있다. 하지만 서로 다른 목적과 범위를 가지고 있다.

  1. @SpringBootTest
  • 통합 테스트의 목적으로, 애플리케이션의 전체적인 동작을 확인합니다.
  • 전체 애플리케이션 컨텍스트를 로드하여 통합 테스트를 수행한다.
  • 웹 계층 뿐만 아니라, 데이터베이스, 서비스 계층, 다른 설정 등 모든 빈과 설정이 로드된다.
  1. @WebMvcTest
  • 웹 계층의 단위 테스트의 목적으로, 컨트롤러(Controller)와 관련된 로직을 확인한다.
  • 웹 관련 빈만 로드하고, 다른 빈이나 설정은 로드하지 않습니다. 예를 들어, 서비스 계층이나 데이터베이스 계층의 빈은 로드되지 않는다.

요약하면, 두 방식 모두 웹 환경의 구성을 테스트할 수 있지만, 로드하는 빈과 설정의 범위가 다르다. @SpringBootTest(WebEnvironment=Mock)은 전체 애플리케이션 컨텍스트를 로드하여 통합 테스트를 수행하고, @WebMvcTest는 웹 계층에 특화된 단위 테스트를 수행한다. 웹 계층만 테스트하는 경우라면, @WebMvcTest를 사용하는 것이 더 적합하고 효율적이다.

'회고 > 우아한테크코스' 카테고리의 다른 글

2023.04.25 일일 회고  (0) 2023.04.26
2023.04.24 일일 회고  (0) 2023.04.25
2023.04.19 일일 회고  (0) 2023.04.20
2023.04.18 일일 회고  (0) 2023.04.19
2023.04.17 일일 회고  (0) 2023.04.18

+ Recent posts