Name

Unitils

Homepage

http://www.unitils.org/summary.html

Lizenz

Apache 2.0

Untersuchte Version

Unitils 3.2

Letzter Untersuchungszeitpunkt

28.05.2011

Kurzbeschreibung

Unitils vereint verschiedene Frameworks, aus Bereichen wie Unit-Testing, Mocking und Persistenz, zu einem Gesamtpaket von Modulen und vereinheitlicht deren Benutzung. Einzelne Module sollen dabei problemlos konfiguriert, verwendet und ausgetauscht werden können.

Fazit

Unitils bietet eine sinnvolle und umfangreiche Kombination von Frameworks, die einen Großteil der üblichen Abläufe bei Unit-Tests von Software abdecken. Es erleichtert den kombinierten Einsatz der verschiedenen Werkzeuge, durch ein einheitliches Bedienungs- und Konfigurationskonzept. Im Gegensatz zur gemeinsamen Benutzung von einzelnen Frameworks im selben Projekt, muss sich der Benutzer bei Unitils keine Gedanken über Konflikte zwischen den angebotenen Modulen machen. Diese Eigenschaften machen Unitils sowohl für Einsteiger, als auch erfahrene Tester interessant. Andererseits muss der Benutzer eventuell darauf warten, dass die Unitils Entwickler Updates und neue Features der Bibliotheken, die es benutzt, unterstützt.

Einsatzgebiete

Unitils wird für Unit-Tests von Software eingesetzt. Es unterstützt unter anderem das Testen von Software mit Datenbankanbindung, auch in Kombination mit Persistenz-Frameworks.

Einsatzumgebungen

Unitils ist nicht an Entwicklungsumgebungen gebunden. Es arbeitet im großen Umfang mit anderen Frameworks zusammen und liefert die benötigten Bibliotheken von Drittanbietern mit.

Installation

Die Installation ist einfach, es müssen lediglich die Unitils Module und zugehörige Bibliotheken in das Projekt, in dem sie genutzt werden sollen, eingebunden werden. Nach dem Download und Entpacken des neuesten "Snapshot", befinden sich die einzelnen Module von Unitils in Unterverzeichnissen, zusammen mit ihren Dependencies. Bevor Unitils für Tests mit Datenbanken eingesetzt werden kann, muss die Verbindung zu der entsprechenden Datenbank in einer Konfigurationsdatei eingerichtet werden.

Dokumentation

Die Dokumentation ist in englischer Sprache online verfügbar. Sie teilt sich auf, in Schnelleinführung, detailliertere Beschreibung der einzelnen Module und die Javadoc API Dokumentation. Im Allgemeinen ist die Dokumentation gut strukturiert und bietet viele, einfach nachvollziehbare Beispiele.

Wartung der Projektseite

Die Projektseite macht insgesamt einen sehr gut gepflegten Eindruck. Die Versionsgeschichte der Software zeugt von regelmäßigen Updates.

Nutzergruppen und Support

Auf den Unitils Webseiten gibt es ein Forum und ein Wiki für die Nutzer. Außerdem gibt es eine Liste mit allen Entwicklern und ihren E-Mail Adressen.

Intuitive Nutzbarkeit

Unitils arbeitet mit dem Spring Framework und nutzt somit ausgiebig Dependency Injection. Benutzer die mit diesem Konzept nicht vertraut sind, werden die Kombination aus Annotationen und Konfigurationsdateien für das Setup der Testklassen ungewohnt finden, sich aber anhand der Dokumentation schnell zurechtfinden.

Automatisierung

Unitils ist darauf ausgelegt, erweiterte JUnit 3, Junit 4 oder TestNG Testklassen zu nutzen und dementsprechend Tests automatisiert durchzuführen. Es unterstützt auch die Zusammenarbeit mit Maven.

Einführendes Beispiel

Einleitung:

Die folgenden Beispiele demonstrieren einige der Fähigkeiten von Unitils, anhand eines extrem simplen, nach und nach erweiterten Lotteriespiels. Das Lotteriespiel besteht im Grunde aus einer Hauptklasse (Lotterie.java), die das Spiel durchführt und Modulen für Persistenz (Persistenz.java) und Zahlengenerierung (Zahlengenerator.java). Das Spiel soll eine 5 Stellige Gewinnzahl generieren und in einer Datenbank ablegen.

Vorbereitung:

Es wird ein neues Java Projekt angelegt und folgende Sourcen hinzugefügt: src.zip

Projektstruktur



Unitils einbinden und Testklassen anlegen:

Unitils kommt in Modulen, die zusätzlich von anderen .jar Bibliotheken abhängig sind. Nach dem Download und Entpacken von Unitils, findet man eine übersichtliche Ordnerstruktur mit den einzelnen Modulen und ihren jeweiligen Abhängigkeiten in den zugehörigen "lib" Ordnern. Wenn mehrere Module eingebunden werden, sollte man vor dem Hinzufügen zum Projekt die Bibliotheken, von denen sie abhängig sind, in einem Ordner zusammenführen. Auf diese Weise vermeidet man das doppelte Einbinden von gleichen Bibliotheken.

Im Ersten Schritt wird das "unitils-mock" Modul benötigt. Für die nächsten Beispiele zusätzlich die Module: "unitils-dbunit" und "unitils-orm".

Erste Testklasse:

Nachdem das Projekt angelegt und zumindest das "unitils-mock" Modul eingebunden ist, kann folgende Testklasse angelegt und ausgeführt werden:

Testklasse: MockTests.java


Detaillierte Beschreibung

Tutorial

Literatur



Zurück zur Werkzeugübersicht
Zurück zur CSI-Hauptseite