Entwicklertag IT-Innovationen

Unit-­Testen mit Groovy - ­so macht Qualitätssicherung wirklich Spaß

Matthias Merdes

Dieser Vortrag steht als PDF-Dokument zur Verfügung.

Seit Kent Beck und Erich Gamma JUnit entwickelt haben, hat sich Entwickler-Testen von einer traditionell ungeliebten Tätigkeit zu einer etablierten Praxis entwickelt. Kent Beck behauptete sogar, dass Entwickler seit JUnit Testen lieben würden. Während die Bedeutung von Unit-Tests besonders in agilen Entwicklungsmethoden betont wird, so ist der Beitrag solcher Tests zur Qualitätsteigerung von Software auch in anderen Entwicklungsansätzen wenig umstritten.

Von besonderer Wichtigkeit beim Unit-Testen ist es, dass tatsächlich nur eine 'Unit' getestet wird und kein Integrationstest größerer Objektbäume durchgeführt wird. Dies wird durch die Verwendung von Mock-Frameworks wie jMock und EasyMock deutlich erleichtert. Ohne derartige Frameworks ist das Unit-Testen einzelner Einheiten sehr aufwändig. Nichtsdestotrotz bleibt mit den Sprachmitteln von Java ein nicht zu unterschätzender Aufwand.

Häufig wird betont, dass in dynamisch typisierten Sprachen dem Unit-Testen eine noch größere Bedeutung zukommt. Während dies natürlich korrekt ist, so ist aber auch folgende Aussage wahr:
Unit-Testen ist in dynamisch typisierten Programmiersprachen weitaus einfacher und eleganter. Dies zeigen wir am Beispiel von Groovy, einer dynamisch objektorientierten Programmiersprache auf Basis von Java. Dabei kommen neben der dynamischen Typisierung sowohl die erweiterten Sprachmittel insbesondere im Bereich der Metaprogrammierung zum Tragen als auch Erweiterungen der entsprechenden Bibliotheken.

Im Einzelnen gehen wir auf folgende Themen ein:

Da Groovy auf Java basiert und auf der JVM ausgeführt wird, kann man die Vorteile von Groovy Unit-Tests auch in Projekten abschöpfen, deren Produktionscode teilweise oder vollständig in Java geschrieben ist. Abschließend lässt sich sagen, dass mit den beschriebenen Sprachmitteln und Erweiterungen von Groovy Unit-Testen stark vereinfacht und deutlich produktiver wird. Dies trägt in Kombination mit der Ausdruckskraft und Eleganz von Groovy dazu bei, dass Testen tatsächlich (noch mehr) Spaß macht.

Referenzen

Der Referent:

Matthias Merdes Matthias Merdes arbeitet als Senior Developer bei Heidelberg mobil International, einem Hersteller mobiler Informationsportale, vor allem in den Bereichen Systemarchitektur, Serviceintegration und Quality Engineering. Er war als Reviewer für 'Software: Practice and Experience' und das 'IBM Systems Journal' tätig, hat in den Bereichen Softwareengineering und Geoinformatik publiziert und auf Entwicklerkonferenzen vorgetragen.

Nach 10 Jahren Javaprogrammierung entwickelt er seit einigen Jahren fast ausschließlich in Groovy.