Spring MVC Webサービスから返されたJSON結果でLocalDateオブジェクトを検証しようとしていますが、どうしたらよいかわかりません。Spring MockMVCでJSON応答でLocalDateを検証する
私は常に次のいずれかのようアサーションエラーに遭遇する瞬間:
java.lang.AssertionError: JSON path "$[0].startDate" Expected: is <2017-01-01> but: was <[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))));
}
}
Webサービスは、次のように見ているビューオブジェクトのリストを返します:
public class ViewObject {
@JsonProperty
private LocalDate startDate;
}
を[編集]
もう一つの試みは、
の結果.andExpect(jsonPath("$[0].startDate", is(new int[] { 2017, 1, 1 })))
ました
java.lang.AssertionError: JSON path "$[0].startDate" Expected: is [<2017>, <1>, <1>] but: was <[2017,1,1]>
[編集2] 返されたstartDateオブジェクトは、タイプのものであると思わ:net.minidev.json.JSONArray
これはにjava.lang.AssertionErrorに結果に私を指すようにする:JSONパス「$ [0] .startDate」期待 は:「2017年1月1日」であります しかし:<[2017,1,1]> – GreenTurtle