나는 봄 MVC 애플리케이션을 테스트 중이다.
브라우저에 대한 응답에 특정 패턴이 있고 응용 프로그램이 일부 json을 다시 전송하는지 확인해야합니다. DT_RowId에 임의의 숫자가 포함되어 있으므로 비교하고 싶지 않은 DT_RowId라는 필드가 있습니다. 따라서 DT_RowId와 그 내용을 제외한 모든 Json 본문을 비교하고 싶습니다.
DT_RowId의 일반적인 발생은 "DT_RowId": "8407709537703772"입니다. 그리고 일반적인 JSON 응답은 다음과 같습니다 아래테스트 봄 MVC 응답 패턴 (응답의 항목에서 json 필드 무시)
{"id":-1,"fieldErrors":[],"aaData":[{"id":8002,"firstname":"Bob","lastname":"Jones","email":"[email protected]","DT_RowId":"8407709537703772"},{"id":8002,"firstname:"Dan","lastname":"Jones","email":"[email protected]","DT_RowId":"8404309537701754"}]}
, 내 테스트 :
@Test
public void testGetUsersJson() throws Exception {
mockMvc.perform(get("/users")
.accept(MediaType.APPLICATION_JSON))
.andDo(print())
.andExpect(content().contentType("application/json"))
// How can I modify the line below??
.andExpect(content().bytes(IOUtils.toByteArray(ctx.getResource("classpath:responses/users.getUsersJson.mywebapp.response.json").getInputStream())))
.andExpect(status().isOk())
.andExpect(redirectedUrl(null))
.andExpect(forwardedUrl(null));
}
어떻게 위의 코드를 수정할 수 있습니까? 필드 "DT_RowId"를 제외한 모든 Json 응답을 비교하고 싶습니다. 영리한 아이디어?
'DT_RowId' 필드가 필요합니까? 그렇지 않은 경우 JSON 응답에서 생략하지 않으시겠습니까? – CodeChimp
예, DT_RowId 필드가 필요합니다. 그렇지 않으면 질문에 아무런 의미가 없습니다. – daniele
그냥 질문이었습니다. 클라이언트에서 DT_RowId를 전혀 사용하지 않는다면 생략하면 비교가 더 쉬워집니다. 때로 사람들은 잘못된 위치에서보고 있기 때문에 명백한 것을 보지 못합니다. – CodeChimp