如何从MockMvc中的jsonPath()中检索String

时间:2018-03-28 12:02:58

标签: spring mocking jsonpath

我想比较两个jsonPath值是否相等:

this.mockMvc.perform(get(requestURL)).andExpect(jsonPath("$.prop1", equalTo(jsonPath("$.prop2"))));

然后我的测试失败了。 jsonPath(" $。prop1") 返回了我想要的正确值,但 jsonPath(" $。 prop2") 不返回此属性的值,而是返回类名:

  

org.springframework.test.web.servlet.result.JsonPathResultMatchers@7b7aaaf6

任何人都可以告诉我如何为jsonPath()执行 toString() 方法?我也尝试了 jsonPath(" $ .prop2")。toString() ,但也收到了类名。

先谢谢你了!

1 个答案:

答案 0 :(得分:4)

MvcResult result = this.mockMvc.perform(get(requestURL)).andReturn();
String response = result.getResponse().getContentAsString();

assertEquals(JsonPath.parse(response).read("$.prop1").toString(),JsonPath.parse(response).read("$.prop2").toString());

有关详细信息,请参阅github readme