Das konsequente, frühe und fortwährende Unit-Testen ist fester Bestandteil unserer Arbeit. Wir können uns das Schreiben von Software ohne regressives Unit-Testing nicht mehr vorstellen. (Ja, auch wir haben früher das Testen unserer Software stiefmütterlich behandelt. Aber das ist zum Glück schon lange her.)
Das xUnit-Testframework nach Beck und Gamma hat sich als De-Facto Standard in diesem Bereich durchgesetzt. (Was leider nicht bedeutet, dass sich das konsequente Unit-Testen als fester Bestandteil der Entwicklertätigkeit auf breiter Front durchgesetzt hätte). Unter
xprogramming.com findet sich eine Sammlung von xUnit-Implementierungen für eine Vielzahl von Programmiersprachen, u.a. auch für Delphi. Warum haben wir uns also die Mühe gemacht, eine eigene DUnit-Version zu entwickeln?
Unsere ursprüngliche xUnit-Umsetzung für Delphi (xUnit4Delphi) liegt bereits mehrere Jahre zurück. Damals existierte die erwähnte DUnit-Implementierung noch nicht. Mit dem Erscheinen von DUnit haben wir für neue Projekte auf DUnit gewechselt. Obwohl DUnit sich stark an
JUnit orientiert, weist es mehrere z.T. lästige Unterschiede auf. So bietet DUnit lediglich eine sehr eingeschränkte Zahl von Check-Methoden. Dass diese Methoden Check und nicht Assert heissen wie in JUnit ist zumindest ärgerlich. Auch sonst gibt es kleine aber feine Unterschiede, die uns als Reisende zwischen den Welten Java und Delphi immer wieder störten. Jedoch nicht genug, um eine eigene DUnit-Umsetzung ernsthaft ins Auge zu fassen.
Das änderte sich, als wir vor der Aufgabe standen, einem Entwickler die Ideen und Konzepte der test-getriebenen Entwicklung (engl. Test-Driven Development, kurz TDD) zu vermitteln. Inspiriert von Kent Becks Buch
Test-Driven Development beschlossen wir, TDD und Entwurfsmuster am Beispiel von xUnit zu vermitteln. Nun, aus dem ursprünglichen Lernprojekt ist eine elegante, klar strukturierte und mächtige Umsetzung von xUnit für Delphi geworden. Das Testframework ist Schritt um Schritt entstanden und vollständig mit sich selbst getestet. Es bietet uns zwar (noch) nicht alles, was unser Delphi-Entwicklerherz begehrt, ist aber dennoch ausgereift genug, um im harten Praxiseinsatz zu bestehen. Eine kurze Liste geplanter Erweiterungen und Verbesserungen findet sich
hier.
Wir haben uns entschlossen das Framework als xUnit4Delphi der Delphi Gemeinschaft unter der
Mozilla Lizenz 1.1 zur Verfügung zu stellen. Wir sehen unser Framework dabei nicht in Konkurrenz sondern vielmehr als eine Alternative zu DUnit.
xUnit4Delphi Version 1.0 (
Zip-Archiv [25 KB] )
xUnit4Delphi ReadMe (
html /
txt [2 KB] )