Spring MVC Test
- Spring MVC 컨트롤러와의 상호작용 테스트를 위한 테스팅 프레임워크
- 웹 환경을 목킹하기 위해서 Servlet API Mock 객체를 제공
MockHttpServletRequest
- 자바의 HttpServletRequest mockMockHttpServletResponse
- 자바의 HttpServeltRequest mock
- DispatcherServlet
- 요청들은 Spring MVC의 DistpatcherServelt을 통해서 경로를 찾아감
Spring MVC Test Configuration Modes
Standalone Setup
- 아주 가벼워서 유닛 테스트에 적합
- 한 번에 하나의 컨트롤러를 테스트
- 컨트롤러의 요청과 응답에 대한 테스트 가능
WebAppContext Setup
- 스프링 configuration의 context를 로딩
- configuration 별로 여러 개의 컨트롤러 테스트가 가능
- application config 테스트 가능
Static Imports
- Spring MVC Test는 다음의 static import를 자주 사용
- MockMvcRequestBuilders.*
- 요쳥을 생성
- MockMvcResultMatchers.*
- 응답에 대한 assertion들을 생성
- MockMvcBuilders.*
- MockMvc 인스턴스를 구성하고 생성
컨테이너와의 주요한 차이점
- Spring MVC Test는 서블릿 컨테이너를 실행시키지 않음
- 네트워크 요청이 필요하지 않음
- 컨테이너를 구동하는 데에서 차이가 있음
- HTML이 생성되지 않기 때문에, 템플릿들이 실행되지 않음
- 요청된 view 나 리다이텍트를 테스트 할 수 있지만, 렌더링될 HTML에 대한 테스트는 불가능
- 필요하다면 컨테이너 구동하여 테스트 할 수 있음
Comments