ResultMatcher: 상태 코드, 뷰, 모델 데이터 검증

상위 맥락

03. 검증과 응답 분석 < 01. Controller 단위 테스트 < 02. Spring MVC2 핵심 기술과 설계 < MVC < Spring < Web

핵심 정리

ResultMatcher는 MockMvc 테스트에서 응답 결과를 실제로 단언하는 검증 도구입니다. perform()이 요청을 실행하고 ResultActions가 결과를 감싸면, ResultMatcher는 그 결과의 특정 부분이 기대와 일치하는지 확인합니다.

자료에서는 MockMvcResultMatchers의 정적 메서드들을 통해 다양한 ResultMatcher를 얻고, 이를 andExpect에 전달한다고 설명합니다.

검증 대상

  • 상태 코드: status().is(200), status().isOk() 등으로 HTTP 상태를 검증합니다.
  • 뷰 이름: view().name(...)으로 컨트롤러가 반환한 논리적 뷰 이름을 확인합니다.
  • 모델 데이터: model().attribute(...)로 View에 전달될 데이터가 Model에 담겼는지 검증합니다.
  • 포워드와 리다이렉트: forwardedUrl(...), redirectedUrl(...)로 응답 흐름을 확인합니다.
  • JSON 응답: jsonPath로 응답 본문의 특정 값을 검증합니다.
  • Content-Type: Content-Type 검증으로 응답 형식을 확인합니다.

응답 형태별 검증 분리

뷰를 반환하는 컨트롤러는 status, view, model 중심으로 검증합니다. 반대로 @ResponseBody 기반 JSON API는 contentType과 jsonPath 중심으로 검증합니다. 자료에서는 응답 형식과 검증 방식이 맞지 않으면 충돌이 발생할 수 있으므로, SSR 화면 응답과 REST 응답의 검증 파이프라인을 분리해야 한다고 설명합니다.

한 문장 요약

ResultMatcher는 MockMvc 실행 결과의 상태 코드, 뷰, 모델, 리다이렉트 경로, JSON 본문 등을 구체적으로 검증하는 응답 분석 도구입니다.

핵심 연결

@ResponseBody, MockMvc와 함께 읽으면 좋습니다.