ObjectMapper
Java 객체를 Json 형식으로 매핑하거나 Json 형식을 Java 객체로 매핑할 때 사용하는 클래스다.
MockMvc란?
MockMvc는 웹 어플리케이션을 애플리케이션 서버에 배포하지 않고 테스트용 MVC환경을 만들어 요청 및 전송, 응답기능을 제공해주는 유틸리티 클래스다.
다시 풀어서 이야기 하자.
내가 컨트롤러 테스트를 하고싶을 때 실제 서버에 구현한 애플리케이션을 올리지 않고(실제 서블릿 컨테이너를 사용하지 않고) 테스트용으로 시뮬레이션하여 MVC가 되도록 도와주는 클래스다!
🧐MockMvc 사용법
컨트롤러를 테스트한다고 가정하자!
class ControllerTest{
@Autowired
private MockMvc mockMvc; // mockMvc 생성
@Test
public void testController() throws Exception{
String jjson = "{\"name\": \"부대찌개\"}";
//mockMvc에게 컨트롤러에 대한 정보를 입력하자.
mockMvc.perform(
get("test?query=food") //해당 url로 요청을 한다.
.contentType(MediaType.APPLICATION_JSON) // Json 타입으로 지정
.content(jjson) // jjson으로 내용 등록
.andExpect(status().isOk()) // 응답 status를 ok로 테스트
.andDo(print()); // 응답값 print
)
}
}
- MockMvc를 생성한다.
- MockMvc에게 요청에 대한 정보를 입력한다.
- 요청에 대한 응답값을 Expect를 이용하여 테스트한다.
- Expect가 모두 통과하면 테스트 통과
- Expect가 1개라도 실패하면 테스트 실패
Mock
- Mock이라는 단어를 사전에서 찾아보면 '테스트를 위해 만든 모형'을 의미한다.
- 테스트를 위해 실제 객체와 비슷한 모의 객체를 만드는 것을 모킹(Mocking)이라고 하며, 모킹한 객체를 메모리에서 얻어내는 과정을 목업(Mock-up)이라고 한다.
- 웹 애플리케이션에서 컨트롤러를 테스트할 때, 서블릿 컨테이너를 모킹하기 위해서는 @WebMvcTest를 사용하거나 @AutoConfigureMockMvc를 사용하면 된다.
'웹 개발 > Back End' 카테고리의 다른 글
스프링 MVC 디자인 패턴의 역사 (0) | 2022.12.22 |
---|---|
Spring REST Docs (0) | 2022.09.15 |
스프링 개념 정리(2) (0) | 2022.09.01 |
스프링 개념 정리(1) (0) | 2022.08.27 |
실전! 스프링 부트와 JPA 활용2 - 스프링 데이터 JPA, QueryDSL 소개 (0) | 2022.01.28 |
댓글