J'avais besoin de tester une API qui utilise le format JSON, je vais donc le résumer ci-dessous. Je le vérifie, donc je pense qu'il y a des erreurs.
Rest-assuré convertira automatiquement la classe Object utilisée pour la requête en Json. Cette fois, j'utilise Jackson 2.
Comme ObjectMapper est utilisé, spécifiez ses paramètres et la destination de la connexion.
//nom d'hôte de destination de la connexion API
RestAssured.baseURI = "http://localhost"
//Paramètres d'ObjectMapper
RestAssured.config = RestAssuredConfig.config().objectMapperConfig(
ObjectMapperConfig.objectMapperConfig().jackson2ObjectMapperFactory(new Jackson2ObjectMapperFactory() {
@SuppressWarnings("rawtypes")
@Override
public ObjectMapper create(Class cls, String charset) {
ObjectMapper objectMapper = new ObjectMapper();
//Paramètres d'ObjectMapper ici
return objectMapper;
}
})
);
//importation statique
import static io.restassured.RestAssured.given;
ResponseClass response = given()
.contentType(ContentType.JSON) // content type
.body(reqest) //demande
.when()
.post("/api/hoge/1") //Spécifier le point de terminaison de l'API
.then()
.statusCode(200)
.extract().as(ResponseClass.class); //Désérialiser à la classe spécifiée
Utilisez junit assert pour voir si la valeur attendue est renvoyée.
Assert.assertThat(response.hoge, is("hoge"));
Avec DbUnit, vous pouvez comparer l'enregistrement DB actuel avec les données écrites dans Excel comme valeur attendue. C'est également pratique car vous pouvez écrire des enregistrements DB dans un fichier Excel.
Connection connection = DriverManager.getConnection(url, username, password)
IDatabaseConnection iDbConnection = new IDatabaseConnection(connection);
//Données après exécution
IDataSet dataSet = dbConn.createDataSet();
//Récupère l'enregistrement avec le nom de table spécifié
ITable data= dataSet.getTable("table");
//Définissez les colonnes que vous souhaitez exclure de l'assertion
data = DefaultColumnFilter.excludedColumnsTable(iTable, "created_at");
//Trier par colonne
data= new SortedTable(iTable, "hoge_name");
//Données de valeur attendue(Exceller)
Valeur attendue ITable= new XlsDataSet(new File("hoge/huga/Valeur attendue.xls"));
Valeur attendue= DefaultColumnFilter.excludedColumnsTable(iTable, "created_at");
Valeur attendue= new SortedTable(iTable, "hoge_name");
//Assertion DbUnit, pas affirmation Junit#Veillez à utiliser assertEquals
Assertion.assertEquals(Valeur attendue, data);
//Convertir l'objet de requête en MAP
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>>(){});
//N'importe quelle clé:valeur de consigne
map.put("dinner", "Viande grillée")
//Convertir la carte en chaîne
String jsonString = objectMapper.writeValueAsString(map);
//Définir la chaîne de caractères json sur le corps et envoyer la demande
ResponseClass response = given()
.contentType(ContentType.JSON)
.body(jsonString)
.log().body()
.when()
.post(endpoint)
.then()
.log().body()
.statusCode(200)
.extract().as(responseClass);
Recommended Posts