【发布时间】:2016-10-04 08:28:00
【问题描述】:
我编写了 Spring 控制器 Junits。
我使用 JsonPath 使用 ["$..id"] 从 JSON 中获取所有 ID。
我有以下测试方法:
mockMvc.perform(get(baseURL + "/{Id}/info", ID).session(session))
.andExpect(status().isOk()) // Success
.andExpect(jsonPath("$..id").isArray()) // Success
.andExpect(jsonPath("$..id", Matchers.arrayContainingInAnyOrder(ar))) // Failed
.andExpect(jsonPath("$", Matchers.hasSize(ar.size()))); // Success
以下是我传递的数据:-
List<String> ar = new ArrayList<String>();
ar.add("ID1");
ar.add("ID2");
ar.add("ID3");
ar.add("ID4");
ar.add("ID5");
我收到失败消息:-
Expected: [<[ID1,ID2,ID3,ID4,ID5]>] in any order
but: was a net.minidev.json.JSONArray (<["ID1","ID2","ID3","ID4","ID5"]>)
问题是:如何处理带有org.hamcrest.Matchers;的JSONArray有没有简单的方法使用jsonPath。
设置:-hamcrest-all-1.3 jar,json-path-0.9.0.jar,spring-test-4.0.9.jar
【问题讨论】:
标签: java junit spring-test hamcrest jsonpath