Ich musste eine API testen, die das JSON-Format verwendet, daher fasse ich es unten zusammen. Ich überprüfe es, also denke ich, dass es einige Fehler gibt.
Rest-Assured konvertiert automatisch die für die Anforderung verwendete Objektklasse in Json. Diesmal benutze ich Jackson 2.
--Das Vorhandensein des Klassenpfads wird bestätigt und die Serialisierung in der folgenden Reihenfolge durchgeführt.
Da ObjectMapper verwendet wird, geben Sie die Einstellungen und das Verbindungsziel an.
//Hostname des API-Verbindungsziels
RestAssured.baseURI = "http://localhost"
//ObjectMapper-Einstellungen
RestAssured.config = RestAssuredConfig.config().objectMapperConfig(
ObjectMapperConfig.objectMapperConfig().jackson2ObjectMapperFactory(new Jackson2ObjectMapperFactory() {
@SuppressWarnings("rawtypes")
@Override
public ObjectMapper create(Class cls, String charset) {
ObjectMapper objectMapper = new ObjectMapper();
//ObjectMapper-Einstellungen hier
return objectMapper;
}
})
);
//statischer Import
import static io.restassured.RestAssured.given;
ResponseClass response = given()
.contentType(ContentType.JSON) // content type
.body(reqest) //Anfrage
.when()
.post("/api/hoge/1") //Geben Sie den API-Endpunkt an
.then()
.statusCode(200)
.extract().as(ResponseClass.class); //Deserialisieren Sie auf die angegebene Klasse
Verwenden Sie junit assert, um festzustellen, ob der erwartete Wert zurückgegeben wird.
Assert.assertThat(response.hoge, is("hoge"));
Mit DbUnit können Sie den aktuellen DB-Datensatz mit den als erwarteten Wert in Excel geschriebenen Daten vergleichen. Dies ist auch praktisch, da Sie DB-Datensätze in eine Excel-Datei schreiben können.
Connection connection = DriverManager.getConnection(url, username, password)
IDatabaseConnection iDbConnection = new IDatabaseConnection(connection);
//Daten nach der Ausführung
IDataSet dataSet = dbConn.createDataSet();
//Rufen Sie den Datensatz mit dem angegebenen Tabellennamen ab
ITable data= dataSet.getTable("table");
//Legen Sie Spalten fest, die Sie von der Bestätigung ausschließen möchten
data = DefaultColumnFilter.excludedColumnsTable(iTable, "created_at");
//Nach Spalte sortieren
data= new SortedTable(iTable, "hoge_name");
//Erwartungswertdaten(Excel)
ITable erwarteter Wert= new XlsDataSet(new File("hoge/huga/Erwarteter Wert.xls"));
Erwarteter Wert= DefaultColumnFilter.excludedColumnsTable(iTable, "created_at");
Erwarteter Wert= new SortedTable(iTable, "hoge_name");
//DbUnit Assertion, nicht junit assertEquals#Achten Sie darauf, assertEquals zu verwenden
Assertion.assertEquals(Erwarteter Wert, data);
//Anforderungsobjekt in MAP konvertieren
RequestObj request = new RequestObj():
ObjectMapper objectMapper = new ObjectMapper();
String jsonString = objectMapper.writeValueAsString(request);
LinkedHashMap<String, Object> map = objectMapper.readValue(jsonString, new TypeReference<LinkedHashMap<String, Object>>(){});
//Irgendein Schlüssel:Wert einstellen
map.put("dinner", "Gegrilltes Fleisch")
//Konvertieren Sie die Karte in einen String
String jsonString = objectMapper.writeValueAsString(map);
//Setzen Sie die json-Zeichenfolge auf body und senden Sie die Anfrage
ResponseClass response = given()
.contentType(ContentType.JSON)
.body(jsonString)
.log().body()
.when()
.post(endpoint)
.then()
.log().body()
.statusCode(200)
.extract().as(responseClass);
Recommended Posts