MockMvc결과가 문자열 json일 때 쉽게 체크하는 법은 jsonPath를 사용하는 방법. REF
그러나, 결과가 Attribute내에 Object 등으로 오는 경우가 많은데..
이럴 경우에는 org.hamcrest.Matchers 를 사용하면 좋다.
<Attribute가 단순 String일 경우>
.andExpect(model().attribute("ReserveResult", org.hamcrest.Matchers.containsString("rtncd=0000")));
<(result내의 Model) Attribute가 Json Object일 경우> org.hamcrest.Matchers.CustomMatcher를 사용한다.
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
//Check if rtncd="0000"
Matcher< ResultClass > resultMatcher = new CustomMatcher< ResultClass >("") {
public boolean matches(Object object) {
return ((object instanceof ResultClass) && ((ResultClass) object).getRtncd().equals("00"));
}
};
mockMvc.perform(request)
.andDo(print())
.andExpect(status().is3xxRedirection())
.andExpect(model().attribute("reserveResult", resultMatcher));