Несмотря на то, что это очень старый вопрос, и, вероятно, многие из рассмотренных идей решили многие проблемы, я все же хочу поделиться решением с сообществом, которое исправило мою проблему.
Я обнаружил, что Проблема заключалась в функции под названием «hasItem», которую я использовал для проверки того, содержит ли JSON-Array определенный элемент. В моем случае я проверил значение типа Long.
И это привело к проблеме.
Как-то, у Matches есть проблемы со значениями типа Long. (Я не использую JUnit или Rest-Assured так сильно, поэтому idk. Именно поэтому, но я думаю, что возвращаемые JSON-данные просто содержат целые числа.)
Итак, что я сделал, чтобы исправить эту проблему, было следующие. Вместо использования:
long ID = ...;
...
.then().assertThat()
.body("myArray", hasItem(ID));
вам просто нужно отправить в Integer. Таким образом, рабочий код выглядел так:
long ID = ...;
...
.then().assertThat()
.body("myArray", hasItem((int) ID));
Это, вероятно, не лучшее решение, но я просто хотел упомянуть, что исключение также может быть выбрано из-за неправильных / неизвестных типов данных.