개발 공부

@SpringBootTest와 @WebMvcTest의 차이점

king yun bell 2023. 5. 21. 17:43

@SpringBootTest:

  1. MockMvc 객체를 빈으로 등록하지 않기 때문에 @AutoConfigureMockMvc로 빈으로 등록해야한다.
  2. 프로젝트에 있는 스프링 빈을 모두 등록해서 테스트에 필요한 의존성을 추가해준다.

장점:

  1. 프로젝트에 있는 모든 스프링 빈을 등록하므로, 테스트에 필요한 겍체를 주입받아서 쉽게 사용 가능하다.
  2. 실제 환경과 가장 유사하게 테스트 가능.

통합테스트에 많이 사용.

 

@WebMvcTest:

  1. MockMvc 객체를 빈으로 등록해서 @Autowired로 MockMvc 주입이 가능하다.
  2. Web Layer 관련 빈들만 등록하기 때문에, @Component로 등록한 빈은 @MockBean으로 등록해야한다.

장점:

  1. Wed Layer 관련 빈만 로드하기 때문에, 속도가 @SpringBootTest보다 빠르다.
  2. 통합테스트에서 테스트가 어려운 작은 단위 테스트들을 @WedMvcTest로 진행할 수 있다.

Controller단위 테스트에 많이 사용.