Утверждают, что тело ответа представляет собой пустой список с гарантией безопасности

Как я могу проверить с уверенностью (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 .

person atamanroman    schedule 26.05.2015    source источник
comment
Если это может помочь, это передает сопоставитель: Object array[] = new Object[0]; new MatcherAssert().assertThat(array, Matchers.emptyArray());   -  person romfret    schedule 26.05.2015


Ответы (2)


Проблема (вероятно) в том, что REST Assured возвращает список, а не массив (и Hamcrest различает их). Ты можешь сделать:

.body("", Matchers.hasSize(0))

or

.body("$", Matchers.hasSize(0))

or

.body("isEmpty()", Matchers.is(true))
person Johan    schedule 26.05.2015
comment
Да, похоже, это проблема. Matchers.empty() - самый очевидный способ. - person atamanroman; 26.05.2015

Вдохновленный тем, что сказал @Johan, я попробовал это, и я думаю, что это говорит читателю больше, чем другие предложения.

.body("", equalTo(Collections.emptyList()))
person kazimierz    schedule 02.04.2020