Benötigen Sie eine Erklärung der hexagonalen Architektur

8

Ich lese mit Interesse über Alistair Cockburns hexagonale Architektur .

Eine Behauptung, die er macht, ist:

Schließlich erkennen die automatisierten Funktionsregressionstests jeden Verstoß gegen das Versprechen, die Geschäftslogik aus der Präsentationsschicht herauszuhalten. Die Organisation kann das Logikleck erkennen und dann korrigieren.

Ich verstehe diesen Punkt nicht. Sagt er, dass Aufrufe einer UI-Ebene Ausnahmen auslösen, weil der Test kopflos ist? Das scheint kein sehr guter Test zu sein!

Victor Grazi
quelle

Antworten:

14

Sein Punkt ist, dass eine Reihe automatisierter Tests, bei denen die gesamte Geschäftslogik ohne Benutzeroberfläche ausgeführt wird, deutlich macht, ob die Benutzeroberfläche über eine Geschäftslogik verfügt.

Um eine solche Testsuite zu erstellen, müssen Sie im Wesentlichen eine sehr dünne "Nicht-Benutzer" -Schnittstelle erstellen, um Daten bereitzustellen und Ergebnisse zu überprüfen. Wenn sich eine Ihrer Geschäftslogiken tatsächlich in der Benutzeroberfläche befindet, replizieren Sie diese Logik in dieser Testoberfläche und erkennen Ihren Fehler.

Don Roby
quelle
Ich verstehe irgendwie. Was passiert jedoch, wenn der Entwickler die veröffentlichte API durch die Einführung von Geschäftslogik in der Präsentationsebene erweitert? Das würde nicht aufgegriffen werden, richtig?
Victor Grazi
1
Nichts schützt vor einem betrügerischen Entwickler, der Dinge hinzufügt, zu denen sie ohne Tests nicht gehören.
Don Roby
Das Muster schützt also vor jemandem, der dumm genug ist, die Geschäftslogik auf die Präsentationsebene zu verschieben, aber nicht vor jemandem, der so dumm ist, dass er neue Geschäfts-APIs in seinen Präsentationscode einführt.
Victor Grazi
"Sie werden feststellen, dass Sie diese Logik in dieser Testschnittstelle replizieren", oder Sie schreiben Ihre Tests, um die UI-Logik zu verwenden, oder?
Daniel Kaplan