Ein Vertrag definiert die Interaktionen, auf die sich ein Konsument verlässt: Anfragen, die mit Antworten bestimmter Form und Statuscodes beantwortet werden. Vertragstests prüfen jede Seite separat anhand dieses Vertrags – den Konsumenten anhand eines daraus erstellten Modells, den Anbieter anhand der darin aufgezeichneten Anfragen –, sodass Inkompatibilitäten vor der Bereitstellung und nicht erst in einer End-to-End-Umgebung erkannt werden.
Bei verbrauchergesteuerten Vertragstests (Pact ist das bekannteste Tool) erzeugt jeder Verbraucher eine Vertragsdatei. Der Build des Anbieters führt jeden Vertrag gegen den realen Dienst aus und schlägt fehl, wenn eine Erwartung nicht erfüllt wird. Bei schemabasierten Vertragstests werden die Antworten stattdessen anhand des OpenAPI-Dokuments der API validiert.
Vertragstests prüfen das Verhalten. Sie prüfen Struktur und Protokoll – ob ein Feld existiert, einen Typ hat und einen Status besitzt. Ob der Preis in diesem Feld korrekt ist, ist Aufgabe eines Funktionstests. Teams, die Funktionstests durch Vertragstests ersetzen, liefern zwar gut formulierte, aber falsche Ergebnisse.
Laden Sie die OpenAPI-Dokumentation einer beliebigen API von deren Dokumentationsseite herunter und überprüfen Sie die erhaltenen Antworten mit „Try it out against it“. Die Assertionssprache kann auch einen Vertrag Punkt für Punkt festlegen, z. B. ob body.data.0.id existiert.
Diese Seite auf Englisch lesen
Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs
Zuletzt aktualisiert