Probezeit Vertrag Muster

Wie kann einfach getestet werden, ob ein Dienst eine API bereitstellt, die seine Clients erwarten? Die Test- und Bereitstellungspipeline jedes Teams besteht aus gängigen Testverfahren wie Komponenten-, Integrations- und End-to-End-Tests. Die wirkliche Frage ist jedoch, wie jedes Team seine Dienste testet und es schafft, unabhängig in der Produktion bereitzustellen, ohne den API-Vertrag zu brechen? In unserem Beispiel, nachdem der ProductSearch-Service seit einiger Zeit in Produktion ist, erwägt ein zweiter Wiederverkäufer, ihn zu verwenden, fordert jedoch, dass jedem Produkt ein Beschreibungsfeld hinzugefügt wird. Aufgrund der Art und Weise, wie die Verbraucher aufgebaut wurden, hat die Änderung erhebliche und kostspielige Auswirkungen sowohl für den Anbieter als auch für die bestehenden Verbraucher, wobei die Kosten für jeden je nach Der Umsetzung der Änderung variieren. Es gibt mindestens zwei Möglichkeiten, wie wir die Kosten für den Wandel zwischen den Mitgliedern der Service-Community verteilen können. Erstens könnten wir unser ursprüngliches Schema ändern und von jedem Consumer verlangen, seine Kopie des Schemas zu aktualisieren, um Suchergebnisse ordnungsgemäß zu validieren. Die Kosten für die Änderung des Systems werden hier zwischen dem Anbieter – der angesichts einer solchen Änderungsanforderung immer eine Art Änderung vornehmen muss – und den Verbrauchern, die kein Interesse an der aktualisierten Funktionalität haben, verteilt. Alternativ können wir dem Dienstanbieter im Namen des neuen Consumers einen zweiten Vorgang und ein neues Schema hinzufügen und den ursprünglichen Vorgang und das Schema im Namen der vorhandenen Verbraucher beibehalten. Die Kosten der Änderung sind nun auf den Anbieter beschränkt, aber auf Kosten der mehr komplexität und teureren Wartung des Dienstes. Wir nutzen CDC-Tests in der E2E-Phase, in der wir davon profitieren können, dass wir keine echten Drittanbieter aufbringen müssen, und unsere Anwendung/unseren Dienst in End-to-End-Strömen in einer semi-realen Umgebung testen können. Der Anbieter stellt die API bereit und zieht seinerseits Verträge vom Broker ab, um seinen Test auszuführen und zu überprüfen, ob seine eigene Testsammlung bricht oder nicht, die er dann an den Broker zurückmeldet.

Hinweis: Durch den Leitfaden werden wir CDC als kurz für consumergesteuerte Verträge und Pakte als Alias für die Verträge verwenden. Lassen Sie uns nun die Zeit zurücksetzen und von Beginn der Lebensdauer unseres Dienstes an ein vorwärtskompatibles, erweiterbares Schema angeben: Nun, da wir eine Möglichkeit haben, unnötige Produkte loszuwerden, richten wir den Status für den Test ein: Um unsere Integrationstests durchzuführen, wird der Consumer in der Regel durch die Bereitstellung bestimmter Eingaben in die Benutzeroberfläche ausgelöst. Der Consumer ruft dann den Anbieter auf, und der Test bestätigt (wiederum in der Benutzeroberfläche), wenn die Ergebnisse den im Vertrag definierten Erwartungen entsprechen. Aufgrund ihrer integrativen Natur haben E2E-Tests in der Regel eine recht lange Rückkopplungszeit. Ein Grund dafür ist die Zeit, die zum Einrichten einer vollständigen E2E-Laufzeitumgebung benötigt wird. Die andere Ursache ist, dass Sie, sobald Sie diese Umgebung eingerichtet haben, wahrscheinlich nicht nur einen einzigen Test ausführen, sondern eine komplette Reihe von Tests, die dazu neigen, einige Zeit in Anspruch zu nehmen.