개발 공부
@SpringBootTest와 @WebMvcTest의 차이점
king yun bell
2023. 5. 21. 17:43
@SpringBootTest:
- MockMvc 객체를 빈으로 등록하지 않기 때문에 @AutoConfigureMockMvc로 빈으로 등록해야한다.
- 프로젝트에 있는 스프링 빈을 모두 등록해서 테스트에 필요한 의존성을 추가해준다.
장점:
- 프로젝트에 있는 모든 스프링 빈을 등록하므로, 테스트에 필요한 겍체를 주입받아서 쉽게 사용 가능하다.
- 실제 환경과 가장 유사하게 테스트 가능.
통합테스트에 많이 사용.
@WebMvcTest:
- MockMvc 객체를 빈으로 등록해서 @Autowired로 MockMvc 주입이 가능하다.
- Web Layer 관련 빈들만 등록하기 때문에, @Component로 등록한 빈은 @MockBean으로 등록해야한다.
장점:
- Wed Layer 관련 빈만 로드하기 때문에, 속도가 @SpringBootTest보다 빠르다.
- 통합테스트에서 테스트가 어려운 작은 단위 테스트들을 @WedMvcTest로 진행할 수 있다.
Controller단위 테스트에 많이 사용.