jsonPath:如何确认返回的数据只是一个元素?当它不是一个数组

时间:2015-12-15 20:25:05

标签: jsonpath spring-test-mvc

我正在使用:

  • Spring MVC
  • Spring MVC Testing

假设使用@Controller的{​​{1}}返回一组以JSON格式表示的域对象,并通过@ResponseBody方法确认以下内容:

print()

观察内容是一个数组。

通过Spring MVC Testing和 hamcrest ,我有以下内容:

Body = [ {
  "id" : "88",
  "nombre" : "Manuel",
  "apellido" : "Jordan",
  "fecha" : 1449370807750
}, {
  "id" : "87",
  "nombre" : "Leonardo",
  "apellido" : "Jordan",
  "fecha" : 1449370807750
}, {
  ...
}, {
  ...
}, {
  ...
} ]

直到这里一切正常。

但假设resultActions.andExpect(jsonPath('$').exists()) .andExpect(jsonPath('$').isArray()) .andExpect(jsonPath('$',hasSize(5))) … 只返回一个元素(一个域对象)并再次通过@Controller方法,我可以看到以下内容:

print()

观察它数组

我目前有以下内容:

Body = {
  "id" : "100",
  "nombre" : "Jesús Você",
  "apellido" : "Mão Nuñez",
  "fecha" : 1449372342312
}

如何确认返回的数据只是一个元素? 它何时不是数组。

我的意思是,我想从XML

获得与以下相同的方法/行为
resultActions.andExpect(jsonPath('$').exists())
           //.andExpect(jsonPath('$').isArray()) <--- fails                   
             .andExpect(jsonPath('$.*', hasSize(4) ))

通过

<persona>
    <id>100</id>
    <nombre>Jesús Você</nombre>
    <apellido>"Mão Nuñez"</apellido>
    <fecha>2015-12-05T22:00:07.756-05:00</fecha>
</persona>

实际上,resultActions.andExpect(xpath("persona").exists()) .andExpect(xpath("persona").nodeCount(1)) jsonPath 等效是什么?

由于

0 个答案:

没有答案