Vertragsprüfung

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.

So funktioniert es

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.

Das Missverständnis

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.

Probieren Sie es hier aus

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.

Quellen

Weitere Begriffe

Diese Seite auf Englisch lesen

Alle Glossarbegriffe · Testtechniken · Alle 39 Mock-REST-APIs

Zuletzt aktualisiert