Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Was sind Unit-Tests? 19.1 Was sind Unit-Tests? Zuerst wollen wir aber etwas genauer den Begriff des Unit-Tests behandeln, damit Sie sich überhaupt etwas darunter vorstellen können. Das Unit-Testing hat sich ursprünglich überwiegend im Java-Umfeld entwickelt und wurde unter dem Begriff JUnit bekannt. Da- runter versteht man im engeren Sinn ein Framework zum Testen von Java-Programmen bzw. deren Bestandteilen (Units). Mittlerweile existieren solche Test-Frameworks aber auch für viele andere Programmiersprachen. 4 (das fasst man dann unter dem Begriff xUnit zusammen), so dass man von einem universellen Test-Framework sprechen kann. Und auch das JsUnit-Framework, dem wir uns hier näher widmen werden, ist ganz nah an den Möglichkeiten und Verhaltensweisen des Java-Vorbilds in JUnit angelegt, soweit man mit JavaScript überhaupt Dinge aus Java nachbilden kann. Und um es deutlich zu betonen Sie brauchen zwingend ein solches JsUnit-Framework, um die Tests auch wirklich ausführen zu können! Es geht nicht darum, dass Sie in Ihrem Entwicklungszyklus irgendwelche Tests manuell durchführen (was Sie natürlich auch machen können). ACHTUNG 19.1.1 Wie arbeitet man grundsätzlich bei testgetriebener Entwicklung mit xUnit? Betrachten wir einmal einen typischen Zyklus bei der testgetriebenen Entwicklung mit einem xUnit-Framework. Die Unit-Tests selbst und die mit ihnen getesteten Einhei- ten werden bei einer konsequenten TDD stets parallel entwickelt. Die eigentliche Pro- grammierung der Tests sowie Units erfolgt in kleinen und sich immer wiederholenden Schritten, die aus drei bzw. vier (je nach Zählweise) Hauptteilen bestehen: 1. Zuerst schreibt man die Tests, die das erwünschte fehlerfreie Verhalten für eine bestimmte Funktionalität prüfen. Zu diesem Zeitpunkt werden die Tests von dem bestehenden Programmcode normalerweise noch nicht erfüllt bzw. es gibt diesen Programmcode sogar noch gar nicht. 2. Der nächste Schritt ist das Ändern oder Erstellen des Programmcodes, der die Tests erfüllen soll. Dabei sollte man diesen Code zu diesem Zeitpunkt mit mög- lichst wenig Aufwand erstellen. Der Code braucht nicht optimiert zu sein. Ziel die- ser Phase ist nur, dass der anschließende Testdurchlauf alle Tests besteht. 3. Wenn die Tests bestanden sind, erfolgt die Optimierung des Codes ohne Änderung der Funktionalität. Dies bezeichnet man als Refactoring (deutsch Refaktorisierung, Restrukturierung oder Umgestaltung). Diese manuelle oder automatisierte Struk- turverbesserung von Programmquelltexten soll die Lesbarkeit, Verständlichkeit, Wartbarkeit und Erweiterbarkeit (und unter Umständen auch die Qualität, Stabilität und Performance des Programms) verbessern. 4 Eben auch JavaScript. 685