我正在使用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測試。 –
就你而言,如果「matchesJsonSchemaInClassPath」不匹配,則會引發JsonSchemaValidationException。你捕捉到這個異常,而不是讓它冒泡並且通過測試。 (發現RestAssured的GITHUB頁面中的例外名稱:https://github.com/rest-assured/rest-assured) –