Home » Tutorials » Tools » Unit-Tests mit DUnit

Unit-Tests mit DUnit

Was sind Unittests?

Unittests sind ein wichtiger Teil bei Extreme Programming (XP). Extreme Programming ist eine bestimmte Art der Softwareentwicklung, deren zentrale Punkte Pair-Programming, einfaches Design, Refactoring und eben testgetriebene Entwicklung sind. Bei Unittests handelt es sich um „normalen“ Code in der jeweiligen Programmiersprache, der verwendet wird, um den eigentlichen Programmcode zu testen. So gehören dann zu einem Projekt eine oder mehrere Testklassen, deren Methoden Aufrufe durchführen. Anschließend überprüfen sie, ob der erwartete Zustand eingetreten ist.

Wann Tests schreiben?

Programmierer sind faul – so zumindest eine häufig gehörte Behauptung. Sobald eine Anwendung einmal funktioniert, wird der Programmierer kaum noch die Motivation aufbringen, Tests dafür zu schreiben. Man mag vielleicht denken, dass Tests nun auch nicht mehr nötig sind, da das Programm ja offensichtlich funktioniert. Allerdings lässt sich leicht prüfen, ob auch nach einer Änderung oder Erweiterung alles noch so funktioniert wie zuvor, wenn man die automatischen Tests ablaufen lassen kann.
Um die Motivation zum Schreiben von Tests zu erhöhen, gibt es jedoch noch eine andere Herangehensweise: Die Tests werden zuerst geschrieben (Test-First-Ansatz). Bevor man mit der Implementierung des eigentlichen Anwendungscodes beginnt, wird ein Test geschrieben, der die Funktionalität testet, die anschließend eingebaut werden soll. Zuerst schlägt der Test fehl – logisch, da die neue Funktionalität ja noch gar nicht existiert. Nun macht man sich an die eigentliche Implementierung, die erst dann abgeschlossen ist, wenn der Test den Erfolg bestätigt.

Tests für Tests?

Natürlich sind Tests auch „nur“ Programmcode, so dass auch sie Fehler enthalten können. Da Tests üblicherweise aber sehr knapp gehalten sind – es wird eine Methode aufgerufen und Ergebniswerte o.ä. überprüft -, sind Fehler unwahrscheinlicher als in Programmcode mit Geschäftslogik. Zudem fallen Fehler in Tests häufig auf, wenn der Test einfach nicht erfolgreich durchlaufen will, auch wenn man den zu testenden Code bereits öfters überprüft hat. Deshalb ist es nicht nötig, auch für Tests Tests zu schreiben.

Vorteile von Tests

Das Schreiben von Tests macht Arbeit und kostet Zeit. Dennoch ist es sinnvoll und wirtschaftlich, da dadurch Fehler in der Programmfunktionalität vermieden oder schnell entdeckt werden können. Insbesondere lässt sich quasi per Mausklick überprüfen, ob nach einer Erweiterung des Programms auch alles andere noch funktioniert oder ob es Seiteneffekte gibt.