MockMvc는 스프링 MVC 애플리케이션의 테스트를 작성할 때 사용되는 프레임워크입니다. MockMvc를 사용하면 실제 HTTP 요청을 보내지 않고도 컨트롤러의 동작을 테스트할 수 있습니다. MockMvc의 기능과 사용법에 대해 알아보고, 실제 예시를 통해 설명하겠습니다.
MockMvc 메소드
- 개념: MockMvc는 스프링 MVC 애플리케이션의 테스트를 위해 제공되는 클래스입니다. MockMvc를 사용하여 컨트롤러의 특정 메소드를 호출하고, 결과를 검증할 수 있습니다.
- 기능: MockMvc는 다양한 메소드를 제공하여 컨트롤러의 동작을 테스트할 수 있습니다. 주요 메소드는 다음과 같습니다.
- perform(requestBuilder): 지정된 요청을 실행하고 결과를 반환합니다.
- andExpect(resultMatcher): 응답 결과를 검증합니다.
- andReturn(): 요청 및 응답을 객체로 반환합니다.
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class MyControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testMyController() throws Exception {
mockMvc.perform(get("/api/my-endpoint"))
.andExpect(status().isOk())
.andExpect(jsonPath("$.message").value("Success"));
}
}
위의 예시에서 mockMvc.perform(get("/api/my-endpoint"))는 /api/my-endpoint로 GET 요청을 보냄을 의미합니다. 그리고 .andExpect(status().isOk())는 응답 상태 코드가 200인지 검증하고, .andExpect(jsonPath("$.message").value("Success"))는 응답 본문의 message 필드가 "Success"인지 검증합니다.
결론
MockMvc는 스프링 MVC 애플리케이션의 테스트를 편리하게 작성할 수 있는 도구입니다. MockMvc를 사용하여 컨트롤러의 동작을 시뮬레이션하고, 응답 결과를 검증할 수 있습니다. 이를 통해 개발자는 안정적이고 견고한 애플리케이션을 구축할 수 있습니다.
'IT > spring' 카테고리의 다른 글
스프링 부트 시큐리티 (0) | 2023.07.06 |
---|---|
스프링 타임리프(thymeleaf) (0) | 2023.07.06 |
@AutoConfigureMockMvc 어노테이션 (0) | 2023.07.06 |
@WebMvcTest 어노테이션: 스프링 MVC 테스트 (0) | 2023.07.05 |
@SpringBootTest 어노테이션: 스프링 부트 테스트 (0) | 2023.07.05 |
댓글