Effizientes Arbeiten mit der Standardbibliothek für automatisierte Tests in Java

Buchtipp: JUnit-Profiwissen

Michael Müller

Unit Testing ist wichtig für die Codequalität und das Gelingen von Softwareentwicklungsprojekten. Wie aber kann ich mit JUnit das Beste dafür herausholen?

Autor(en)

Michael Tamm

Titel

JUnit-Profiwissen

Untertitel

Effizientes Arbeiten mit der Standardbibliothek für automatisierte Tests in Java

Seiten

370

Preis

34,90 Euro

Verlag

dpunkt.verlag

Jahr

2013

ISBN

978-3-86490-020-4

In seinem Buch stellt Michael Tamm die Frage nach Sinn und Unsinn von Unit Tests nicht. Vielmehr sieht er diese Frage im Sinne des vorhergehenden Statements beantwortet und liefert in seinem Buch eine detaillierte Anleitung, mehr herauszuholen als nur ein paar einfache Tests. Dabei beschränkt er sich nicht nur auf JUnit, sondern beschreibt auch einige nützliche Helfer, um Testobjekte bereitzustellen. Denn was ist ein isolierter Test, wenn nicht erforderliche Objekte durch Dummy-, Pseudo, Stub- oder Mock-Objekte ersetzt werden können? Schließlich soll häufig nur eine (kleine) Codeeinheit und nicht ein komplett aufgespannter Objektgraph getestet werden. Also nimmt der Autor auch einige bekannte Mock-Frameworks in das Buch auf und zeigt, wie diese für effektive Tests mit JUnit genutzt werden können.

Der Autor startet kleinschrittig: Was bedeutet der sprichwörtliche grüne Balken, was sind funktionale und nicht funktionale Tests? Was sind Testklassen, Testmethoden, Assertions, Testfixtures und Testsuites? Auch wenn es sich dabei um Grundbegriffe jenseits eines konkreten Testframeworks handelt, beschreibt der Autor sie immer vor dem Hintergrund des titelgebenden Systems. Dabei startet er mit JUnit 3, das nach wie vor noch an vielen Stellen eingesetzt wird, um dann auf Version 4 zu schwenken.

Viele Entwickler nutzen JUnit in ihren Projekten, schreiben Tests und nutzen Methoden- oder klassenweite Before– und After– Methoden, um die Umgebung von Tests auf- und wieder abzubauen. Schließlich ist dies der Bereich, für den manch eine Entwicklungsumgebung bereits ein Testskelett generieren kann. Wann aber ist deren Einsatz sinnvoll? Und wieso werden diese oft falsch eingesetzt? Die Nutzung von @Rule oder @RunWith ist noch weniger bekannt. Aber hier bietet das Buch Hilfestellung, JUnit bis ins letzte Detail voll auszureizen, wobei der Autor häufig angibt, ab welcher Version welches Feature, z. B. Hamcrest, zur Verfügung steht oder wie erweiterte Features einzubinden sind.

Testgetriebene Entwicklung thematisiert er auch kurz; dies ist in vorliegendem Buch aber eher eine Randerscheinung, geht es doch hauptsächlich um die technische Nutzung von JUnit und weniger um Vorgehensweisen. Dafür werden aber wie erwähnt Mock-Frameworks und deren Verwendung vorgestellt, namentlich jMock, EasyMock und Mockito sowie on Top PowerMock. Danach widmet er sich dann aber doch noch ein wenig Themen abseits der reinen Technik: Wie werden Tests verständlich geschrieben? Wie können sie beschleunigt werden, falls der zeitliche Aufwand für deren Ausführung zu groß wird? Wie wird abseits der Happy Paths getestet? Und wie verhält es sich mit nicht funktionalen Tests? Damit klingt auch schon ein wenig von der Kunst an, gute Tests zu schreiben.

Zum Abschluss geht der Autor auf die Einbindung des Testframeworks in einigen bekannten Entwicklungsumgebungen ein, sowie auf die Nutzung mit den Build-Werkzeugen Ant und Maven. So ergibt sich insgesamt ein rundes Bild der vielfältigen Nutzungsmöglichkeiten von JUnit. Mithilfe zahlreicher Codebeispiele, Grafiken und Einschübe schreibt der Autor verständlich, sodass es nicht erforderlich wird, das Buch vor dem PC zu lesen. Dies kann ganz entspannt auf der Couch erfolgen. Dennoch: Es schadet sicher nicht, einige Beispiele zeitnah auf das eigene Projekt zu übertragen.

Geschrieben von
Michael Müller
Michael Müller
Michael Müller verfügt über mehr als 30 Jahre Erfahrung in Softwareentwicklung, Training und Consulting, davon rund 25 Jahre im Gesundheitswesen. Er leitet den Bereich Softwareentwicklung bei der InEK GmbH. Daneben betätigt er sich als freier Autor und Blogger. Er ist Mitglied der JSF Expert-Group, des NetBeans Dream Team sowie der JUG Cologne.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: