Я использую Rest Assured Framework для тестирования API (с использованием Java). В строке (1) я ожидаю ошибку, так как есть несоответствие ожидаемому ответу JSON и действительный ответ JSON Но вместо этого мой код выполняется успешно. Может кто-нибудь, пожалуйста, скажите мне, что я делаю что-то неправильно в нижнем коде?Rest Assured Framework полная ответная реакция JSON
public void test123() {
try {
//Read the Curl Request Input file
String json = input.readFromTextFile(
System.getProperty("user.dir") + "\\src\\test\\resources\\inputFile\\CurlDataFile.txt");
json = json.replaceAll(" ", "");
RestAssured.baseURI = "My URL";
given().
contentType("application/json").
body(json).
when().
post("").
then().
assertThat().body(matchesJsonSchemaInClasspath("testCurlOuput1.json")); (1)
} catch (IOException e) {
e.printStackTrace();
}catch(JsonSchemaValidationException e){
e.printStackTrace();
}
}
Но мой код не получает ошибку, так что дело не в обработке исключения. – SachinB
Когда ваш assertThat() .. терпит неудачу, этот метод действительно генерирует исключение :-). Ошибка утверждения => Исключение. Вот почему ошибки утверждения терпят неудачу в тестах JUnit. –
В вашем случае «matchJsonSchemaInClassPath» выдает исключение JsonSchemaValidationException, если оно не совпадает. Вы поймаете это исключение, вместо того, чтобы дать ему пузыриться и не пройти тест. (обнаружил, что имя исключения на страницах GITHUB RestAssured: https://github.com/rest-assured/rest-assured) –