#testing #junit #quarkus #rest-assured
Вопрос:
Я пытаюсь протестировать свое приложение Quarkus. Я хочу проверить, что ответ больше 0, проблема в том, что конечная точка, которую я вызываю, возвращает строку, а не число. Как я могу преобразовать ответ в число и проверить, что оно больше 0?
@Test
void getAdminListSize() {
given()
.when()
.header("Authorization", token_admin)
.get(PATH "/get?listSize=true")
.then()
.statusCode(200)
.body(greaterThan(0))
;
}
Вот ответ, который я получаю: «28357».
Это ошибка, которую я получаю:
java.lang.AssertionError: 1 expectation failed.
Response body doesn't match expectation.
Expected: a value greater than <0>
Actual: 28357
Ответ №1:
Просто извлеките тело в переменную и работайте с ней
@Test
void getAdminListSize() {
String s = given()
.when()
.header("Authorization", token_admin)
.get(PATH "/get?listSize=true")
.then()
.assertThat()
.statusCode(200)
.extract()
.body()
.asString();
convert s into a integer and do the assert
}
Другой вариант-использовать .as(Clazz.class)
и работать с вашим dto, если он у вас есть