Session

ArchUnit: Testen von Architektur und Design

In den meisten Projekten gibt es irgendwo eine Dokumentation der Architektur und der Code-Conventions. Die Frage ist nur: Wo? Und sind die Beschreibungen aktuell? Hält sich der Code wirklich daran? In der Praxis ist solche Dokumentation leider allzu häufig "write-only" und hat mit der Realität nur noch entfernt zu tun.

Viel schöner wäre es doch, wenn die Vorgaben automatisiert geprüft werden könnten. Beispielsweise in Form von Unit-Tests, die von den Entwicklern zusammen mit der Anwendung gepflegt und angepasst werden, als Teil einer "Living Documentation".

Mit der Java-Bibliothek "ArchUnit" können die typischen Architekturvorgaben mit einer Fluent-API als Regeln definiert und z.B. in JUnit getestet werden. Dazu gehören Schichten und fachliche Schnitte, deren erlaubte und verbotene Abhängigkeiten sowie Zyklenfreiheit. Außerdem können Code-Conventions wie Namen von Elementen, die Zuordnung von Klassen zu Packages und die Verwendung von Annotationen und Exceptions geprüft werden.

Bestehende Regeln können so nicht nur mit Unit-Tests festgezurrt werden, es können auch Ausnahmen definiert werden. Vorhandener Code kann so nach und nach an die Vorgaben angepasst werden, z.B. als Vorbereitung einer Modularisierung - und das auch mit älteren Java-Versionen.

Neben der allgemeinen Vorstellung von ArchUnit bietet dieser Vortrag Tipps aus der Praxis - inkl. Live-Coding.

Thomas Much

Technical Agile Coach. Tech. People. Together.

Hamburg, Germany

View Speaker Profile