使用rest-assured断言响应体为空列表

24

如何使用 Rest-Assured (2.4.0) 检查响应的 JSON 是否为一个空列表?

假设响应内容为 [](带有头部信息content-type=application/json),我尝试了以下方法:

.body(Matchers.emptyArray()) // expected: an empty array, actual: []
.body("/", Matchers.emptyArray()) // invalid expression /
.body(".", Matchers.emptyArray()) // invalid expression .

如果有帮助的话,这将通过匹配器:Object array[] = new Object[0]; new MatcherAssert().assertThat(array, Matchers.emptyArray()); - romfret
2个回答

47

问题可能是REST Assured返回的是一个列表而不是数组(而Hamcrest区分这两者)。你可以这样做:

问题可能在于 REST Assured 返回的是 List 而不是数组(而 Hamcrest 会区分它们)。你可以这样做:
.body("", Matchers.hasSize(0))
或者
.body("$", Matchers.hasSize(0))
或者。
.body("isEmpty()", Matchers.is(true))

8
没错,那似乎就是问题所在。在我看来,Matchers.empty() 是最清晰的方式。 - atamanroman

3

受 @Johan 的启发,我尝试了这个方法,我认为这比其他建议更能向读者传达信息。

.body("", equalTo(Collections.emptyList()))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接