Здравствуйте, коллеги, подскажите правильное решение:
Есть проект по тестированию API со следующим стеком: Maven - TestNG - RestAssured. В проекте есть необходимость проверять JSONы в запросах и в ответах на соответствие JSON Schema’ам, для этого использую стандартное от RestAssured/Hamcrest:
`
// request
assertThat(payloadJSON, matchesJsonSchemaInClasspath(“payload_JSON_Schema.json”));
…
// response
…
.assertThat()
.statusCode(200)
.contentType(ContentType.JSON)
.body(matchesJsonSchemaInClasspath(“response_JSON_Schema.json”))
`
Но, в случае если request или responce не соотвествует своей Schema, нужно выводить специальное сообщение об ошибке, т.е. если бы это был ассерт от TestNG или jUnit, то было бы так:
Assert.assertTrue( 1 == 2, "свое сообщение об ошибке");
но RestAssured не позволяет добовлять свое сообщени для assertThat (хотя такой фича реквест есть).
Собственно вопрос, как лучше сделать:
-
запускать assertThat в try/catch просто добавть свое сообщение в catch:
} catch (Exception ex) { fail("[ERROR]: свое сообщение:" + ex.getMessage()); }
-
валидировать JSON Schema с помошью ассертов TestNG, как это лучше делать?
-
какой-нибудь другой вариант?