JsonPath 断言类型 JSONArray

JsonPath assertions type JSONArray

我正在尝试使用 JsonPath 进行验证 json 的测试,我可以创建测试,但是当我验证我得到的可能是类型错误时 Expected: <[4]> but: was <[4]> 我的测试是这样的:

mockmvc.perform(get("/client/rating"))
    .andExpect(status().isOk())
    .andExpect(jsonPath("$", hasSize(3)))
    .andExpect(jsonPath("$[?(@.id == prod1)].rate", equalTo(new JSONArray("[4]"))));

我这里没有Json测试过,但是这个值是对的,唯一的问题是它的类型...

感谢您的帮助!

你可以这样做这个测试:

mockmvc.perform(get("/client/rating"))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$", hasSize(3)))
                .andExpect(jsonPath("$[?(@.id == prod1)].rate").value(4));