是否可以使用 JsonPath 统计成员数量?
使用 Spring MVC 测试 我正在测试生成的控制器
{"foo": "oof", "bar": "rab"}
和:
standaloneSetup(new FooController(fooService)).build()
.perform(get("/something").accept(MediaType.APPLICATION_JSON)).andExpect(status().isOk())
.andExpect(jsonPath("$.foo").value("oof"))
.andExpect(jsonPath("$.bar").value("rab"));
我想确保生成的 json 中没有其他成员。希望通过使用 jsonPath 来计算它们。可能吗?也欢迎其他解决方案。
原文由 NA. 发布,翻译遵循 CC BY-SA 4.0 许可协议
测试 数组 的大小:
jsonPath("$", hasSize(4))
计算 对象 的成员:
jsonPath("$.*", hasSize(4))
即测试 API 返回一个包含 4 个项目的 数组:
可接受的值:
[1,2,3,4]
测试该 API 返回一个包含 2 个成员的 对象:
可接受的值:
{"foo": "oof", "bar": "rab"}
我正在使用 Hamcrest 1.3 版和 Spring Test 3.2.5.RELEASE
hasSize(int) javadoc
注意:您需要包括 hamcrest-library 依赖项和
import static org.hamcrest.Matchers.*;
hasSize() 才能工作。