У меня есть тест, который я не могу получить синтаксис правильно:
@Test
void statsTest() {
given().queryParam("param", "ball")
.when().get()
.then().body("total", is(closeTo(10.0, 0.1*10.0))));
}
Однако, тест продолжает проваливаться, даже если условие выполнено:
java.lang.AssertionError: 1 expectation failed.
JSON path total doesn't match.
Expected: is a numeric value within <1.0> of <10.0>
Actual: 10
У меня никогда не было проблем с типами в этой настройке RestAssured
и Hamcrest
. Например, тест такого рода: body("total", greaterThan(9))
работает нормально, что означает, что под капотом есть какое-то приведение типов.
Я просмотрел документы и не могу найти способ привести значение body("total")
к числовому значению.
поэтому я подозреваю, что это ошибка или я чего-то не понимаю.
Вот ответ JSON. Я должен был обрезать это, чтобы сделать короткий. Надеюсь, что это работает.
{
"stats": {
"totalHits": 1,
"searchEngineTimeInMillis": 83,
"searchEngineRoundTripTimeInMillis": 87,
"searchProcessingTimeInMillis": 101
},
"products": {
"id": "total",
"displayName": "Documents",
"ball": 10}
}