Besser lesbare Unittests mit AssertJ

von Manuel Mauky | 2. April 2014

junit, testen

Damit Testgetriebene Entwicklung in der Praxis funktionieren kann, müssen sich Tests möglichst einfach und trotzdem ausdrucksstark schreiben lassen und gut lesbar sein. Auch die (Neben-)Aufgabe von Unittests, eine lebendige Entwicklerdokumentation zu bilden, kann nur erfüllt werden, wenn die Tests gut lesbar sind.

Die klassischen Assertions von JUnit lassen hier teilweise zu wünschen übrig. Neben assertTrue und assertNotNull bestehen viele Unittests nur aus unzähligen assertEquals-Anweisungen, was in der Regel sehr weit weg von natürlicher Sprache ist. Diese Lücke versucht das Hamcrest-Projekt zu schließen, welches mittlerweile teilweise in JUnit eingeflossen ist. Hamcrest ist jedoch ebenfalls nicht unproblematisch und bietet durch seinen Aufbau aus statischen Methoden in der Praxis zahlreiche Schwächen und Nachteile.

Einen moderneren Ansatz verfolgt das Framework AssertJ bzw. FEST-Assert. Auf den ersten Blick sehen die Assertions denen von Hamcrest zwar sehr ähnlich, jedoch wurde für die Implementierung statt statischer Methoden der modernere Ansatz einer Fluent-API gewählt, wodurch sich einige Vorteile ergeben, wie z.B. bessere IDE-Integration.

Im Vortrag wird das eigentliche Problem und die bisherige Lösung mit Hamcrest gezeigt. Dem wird anschließend das Framework AssertJ gegenüber gestellt. Anhand von zahlreichen Core-Beispielen soll gezeigt werden, wie einfach sich lesbare Unittests formulieren lassen, wenn man die richtigen Werkzeuge zur Hand hat. Anschließend wird ebenfalls darauf eingegangen, wie mit AssertJ eigene, domänenspezifische Assertions erstellt werden können. Damit kann sich der Anwender seine eigenen Werkzeuge erstellen, um in seiner Domäne gut lesbare und ausdrucksstarke Unittests schreiben zu können.


Manuel arbeitet als Softwareentwickler bei ZEISS Digital Innovation in Görlitz. Er beschäftigt sich mit allen Aspekten der Anwendungsentwicklung, wobei der Fokus auf dem Frontend liegt. Daneben interessieren ihn Themen wie funktionale Programmierung und neue Programmiersprachen. Manuel ist Gründungsmitglied und Organisator der Java User Group Görlitz und steuert hierfür und auch für andere Usergroups und Konferenzen regelmäßig Vorträge bei.


Datum: 2. April 2014, 19:00 Uhr

Ort:
Saxonia Systems AG
Berliner Straße 63
02826 Görlitz

Die Veranstaltung wird durch die Java User Group Görlitz (im iJUG Verband) organisiert.
Die Java User Group Görlitz ist ein Projekt des Digitale Oberlausitz e.V.