Я пытаюсь проверить объект LocalDate в результате JSON, возвращаемом веб-службой Spring MVC, но не могу понять, как это сделать.
На данный момент я всегда сталкиваюсь с ошибками утверждения, такими как следующая:
java.lang.AssertionError: путь JSON "$[0].startDate" Ожидаемый: ‹2017-01-01>, но: был ‹[2017,1,1]>
Важная часть моего теста размещена ниже. Любые идеи, как исправить тест, чтобы пройти?
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.standaloneSetup;
public class WebserviceTest {
@Mock
private Service service;
@InjectMocks
private Webservice webservice;
private MockMvc mockMvc;
@Before
public void before() {
mockMvc = standaloneSetup(webservice).build();
}
@Test
public void testLocalDate() throws Exception {
// prepare service mock to return a valid result (left out)
mockMvc.perform(get("/data/2017")).andExpect(status().isOk())
.andExpect(jsonPath("$[0].startDate", is(LocalDate.of(2017, 1, 1))));
}
}
Веб-сервис возвращает список объектов представления, который выглядит следующим образом:
public class ViewObject {
@JsonProperty
private LocalDate startDate;
}
[изменить]
Еще одна попытка была
.andExpect(jsonPath("$[0].startDate", is(new int[] { 2017, 1, 1 })))
что привело к
java.lang.AssertionError: путь JSON "$[0].startDate" Ожидаемый: [‹2017>, ‹1>, ‹1>], но: был ‹[2017,1,1]>
[edit 2] Возвращенный объект startDate имеет тип: net.minidev.json.JSONArray