Я использую библиотеку Spring «spring-test-mvc» для тестирования веб-контроллеров. У меня есть очень простой контроллер, который возвращает массив JSON. Тогда в моем тесте у меня есть:
@Test
public void shouldGetAllUsersAsJson() throws Exception {
mockMvc.perform(get("/v1/users").accept(MediaType.APPLICATION_JSON))
.andExpect(content().mimeType(MediaType.APPLICATION_JSON))
.andExpect(jsonPath("fName").exists());
}
Приведенный выше тест возвращает:
java.lang.AssertionError: No value for JSON path: fName
Чтобы быстро проверить, что я на самом деле получаю, я провел следующий тест:
@Test
public void shouldPrintResults() throws Exception {
mockMvc.perform(get("/v1/users").accept(MediaType.APPLICATION_JSON))
.andDo(print());
}
И он возвращает правильный массив JSON в теле MockHttpServletResponse
Я не уверен, почему jsonPath
не видит fName
в массиве JSON.