JavaScript: Unit-Testing

Klassische Vorgehensweise vs. TDD

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Unit Test können entweder nach dem produktiven Code oder davor geschrieben werden. Im zweiten Fall spricht man von Test Driven oder Test First Development. Welche Vorteile der letztere Weg hat, auch wenn er zunächst wenig intuitiv scheint, zeigt dieses Video.
04:47

Transkript

Wenn wir über Unit Testing sprechen, dann können wir zwei generelle Vorgehensweise unterscheiden. Zum einen die Vorgehensweise, dass die Tests nach dem produktiven Test geschriben werden, und dann die Vorgehensweise, dass zuerst die Tests und dann der produktive Code geschrieben wird. Wie sieht das Ganze nun konkret aus? Schauen wir uns zunächst den klassischen Ablauf an. Im klassischen Ablauf wird zuerst der produktive Code geschrieben, also der, der später in ihrer Anwendung läuft. Anschließend werden die Unit Tests geschrieben. Das geschieht meistens jedoch nur noch falls noch Zeit ist nachdem der produktive Code geschrieben wurde. Wenn Unit Tests geschrieben worden sind, dann werden sie ausgeführt und am Ende werden Fehler behoben die eventuell aufgetreten sind. In den meisten Fällen endet diese Kette jedoch nach dem ersten Punkt, nach dem Punkt "Code schreiben" Es liegt zum einen daran, dass wir wenn der Code einmal geschrieben ist davon ausgehen dass er läuft. zum anderen haben wir vielleicht Zeitdruck und deswegen streichen wir die Tests außerdem dadurch dass sie Tests nach dem Code kommen, sehen wir es als weniger wichtig an. Typpischerweise machen wir zuerst die wichtigen Sachen. Wenn wir ganz ehrlich sind wenn wird Code geschrieben haben, gehen wir davon aus er läuft und dann die Test zu schreiben, für etwas was schon läuft ist langweilig. Heißt wir werden als Entwickler in der Regel Abkürzung suchen, und einen Weg finden um den Test drum herum zu kommen. Um dies zu verhindern, wurde eine Alternative entwickelt nämlich der Test First Ablauf. Im Test First Ablauf wird zuerst der Test geschrieben. Bedeutet, Sie setzen eine Anforderung um, Sie schreiben noch keinen produktiven Code sondern stattdessen schreiben Sie einen Test. Sie lassen diesen Test dann laufen und dann schlägt er natürlich fehl. Was Sie als nächstes machen ist, Sie schreiben den einfachsten code, um diesen Test lauffähig zu machen. Dann führen Sie ihn wieder aus. Und jetzt sollte er grün sein, wenn er jetzt grün ist, bedeutet erfoglreich durchgelaufen ist, dann können Sie diesen einfachen Code optimieren, Sie können ihn also refactorn. Wenn die Optimierung abgeschlossen ist, lassen Sie die Tests wieder laufen und wenn alle Tests erfolgreich waren, dann fangen Sie mit der nächsten Anforderung an und gehen wieder los damit, dass Sie ien Test schreiben. Das Ganze mag zunächst einmal sehr eigenartig klingen, Warum schreiben Sie zuerst den Test, und lassen ihn dann laufen Sie wissen ja dass er noch nicht funktionieren kann, weil der Test noch keine Implementierung hat. Genau hier liegt bereits die erste Prüfung, wenn ich ein Test habe, brauche ich etwas was überprüft ob mein Test überhaupt korrekt ist. Wenn mein Test also implementiert wird ohne produktiven Code zu haben und beim ersten laufen bereits erfolgreich ist, dann muss ich stutzig werden, dann muss ich überlegen warum ist der Test jetzt schon grün, ich habe noch gar keinen Code geschrieben. Es könnte alo sein, dass ich in meinem Test ein Fehler habe. Das schließe ich dann dadurch aus, dass ich ihn zunächst einmal laufen und explizität fehlschlagen lasse. Anschließend schreibe ich den einfachsten Code nicht den besten Code, sondern den einfachsten Code um den Test so schnell wie möglich ans Laufen zu bekommen. Wenn der Test erfolgreich war dann kann ich den Code optimieren. Das Gute ist dass ich bei diese Optimierung mein Test als Sicherheitsnetz habe. Ich kann also jederzeit prüfen ob meine Optimierung, ein Fehler verursacht hat oder nicht. Es wird dabei bewusst eine Trennung zwischen initialer Entwicklung Und Optimierung durchgeführt. Diese Trennung die kommt daher, dass man davon ausgeht, dass es relativ schwierig ist, gleichzeitig etwas zu produzieren was funktioniert, aber auch perfekt läuft. Stellen Sie sich vor sie schreiben einen Aufsatz, so wie sie das früher vielleicht eine Schule gemacht haben. In der regel haben Sie nicht direkt den kompletten Aufsatz geschrieben sondern sie haben erstmal eine Gliederung geschrieben, ein Rohentwurf und das Ganze iterativ verfeinert und genauso gehen sie auch bei der Test First Entwicklung vor, Sie lassen also erst den Test durch den möglichst einfachen Code erfolgreich durchlaufen und anschließend können Sie Ihren Code iterativ optimieren. Haben dabei aber den Vorteil, dass sie den Test als Sicherheit haben, dass sie nichts kaputt machen. Zusammenfassend können wir also sagen, In der klassischen Vorgehensweise schreiben Sie die Tests nach dem produktiven Code, das führt dann allerdings häufig dazu, dass Tests gar nicht entwickelt werden. Die Gründe habe ich ihnen zuvor genannt Test danach zu schreiben da fehlt vielleicht die Zeit, danach zu schreiben ist langweilig und so weiter. Wenn Sie den Test First Ansatz oder den Test Driven Ansatz nehmen, dann schreiben Sie den Test zuerst. Dieser Test wird fehlschlagen Sie lassen ihn anschließen Grün werden und können ihn dann Schritt für Schritt optimieren. Das mag zunächst wie gesagt eher kontraproduktiv klingen, wenn Sie es eine Weile probiert haben dann wären sie doch merken,dass Sie mit dieser Arbeitsweise häufig sehr tolle Ergebnisse erzielen.

JavaScript: Unit-Testing

Steigen Sie in die Grundlagen des Unit-Testings ein und sehen Sie, wie Sie mit dem Jasmine-Framework Ihren JAvaScript-Code professionell testen können.

2 Std. 7 min (21 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:19.05.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!