Aus dem Kurs: Programmierrätsel: JavaScript

Testumgebung aufsetzen

In diesem Training geht es ja um einzelne Programmieraufgaben. Das heißt, Sie schreiben Funktionen, die bestimmten Input annehmen, und dann ein vorherdefinierten Output liefern. Und das ist ein klassischer Fall auch für eine Testumgebung. Das bedeutet, Sie haben einen Test mit einem vorgefertigten Input und einem erweiterten Output. Dann führen Sie diese Funktion aus, und wenn der Output der Funktion mit dem erweitertеn Output übereinstimmt, dann wurde der Test bestanden. Und das können Sie mit einem Test-Framework machen. Ich mache das hier mit Mocha. Das beruht auf Node beziehungsweise NPM. Und dann können Sie einfach verschiedene Tests gegen einer JavaScript-Funktion laufen lassen. Um Mocha nutze zu können, brauchen Sie Node, also eine JavaScript-Laufzeitumgebung auf Ihrer Maschine. Und dann können Sie die einzelnen Tests ausführen. In den Übungsdateien für dieses Training da finden Sie eine Anleitung. Und vor allem finden Sie da die verschiedenen Tests für alle kommenden Aufgaben. Und ich zeige Ihnen jetzt mal, wie Sie solch einen Test starten können. Und wie Sie Mocha installieren können. Die Übungsdateien für dieses Training sind so aufgebaut. Sie haben einerseits die Lösungen mit den einzelnen Dateien, und die gleichen Dateien, nur eben ohne die fertige Lösung, die finden Sie in den Aufgaben. Ich habe hier mal so eine Testdatei angelegt. Und diese Tests oder diese Aufgaben im Laufe dieses Trainings sind immer gleich aufgebaut. Ich habe hier unten einen TestCode, und Ihre Antwort, die schreiben Sie hier oben in diese Funktion rein. Diesen TestCode, den bekommen Sie von mir. Und das steht zum Beispiel hier als Test drin. Schreiben Sie eine Funktion, die hat den Namen add, die ist hier oben definiert. Und die bekommt zwei Zahlen und die soll diese beiden Zahlen addieren und die Summe zurückliefern. Das heißt, wenn ich diese Funktion mit der Zahl 2 und 3 aufrufe, dann erwarte ich eine Fünf. Wenn ich eine 7 und 2 aufrufe, dann erwarte ich eine 9. Und Ihre Aufgabe ist es nun, also hier oben in der Funktion Ihren Code einzutragen. Na ja, wir haben jetzt diese beiden Variablen a und b. Also gebe ich einfach ein Return a+b zurück. Und damit glaube ich , habe ich diese Aufgabe jetzt gelöst. Jetzt möchte ich das Ganze noch überprüfen. Also gehe ich hier auf die Kommandozeile, ich kann es entweder hier direkt im Terminal machen, in meinem Visual Studio Code, oder in jedem anderen Editor, oder direkt auf der Kommandozeile, wie auch immer. Und jetzt muss ich ins passende Verzeichnis wechseln, ich bin hier im Verzeichnis Aufgaben. Also gehe ich immer raus, wechsle nach Aufgaben, überprüfe das Ganze noch mal, ja, da sehen Sie, hier habe ich die ganzen Aufgaben aufgelistet. Und jetzt möchte ich diese Tests hier ausführen lassen. Das machen wir mit dem Befehl mocha. Wie man den installieren, zeige ich Ihnen gleich im Anschluss. mocha, gefolgt von Namen der Datei, in der dieser Test liegt. Also 00_test.js. Probieren wir es aus. Und jetzt sehen Sie hier, jawohl, diese Tests sind alle durchgelaufen, es hat 7 Millisekunden gebraucht, und alles war in Ordnung. Probieren wir mal das Gegenteil aus. Wenn ich jetzt hier ein a-b schreibe und den Test nochmal ausführe, dann sehen Sie hier eine andere Ausgabe. Und zwar er hat hier eine 5 erwartet aber nicht das Richtige zurückbekommen. Und deswegen ist das Ganze hier auch rot markiert. Das heißt hier ist ein Fehler entstanden, dieser Test ist nicht durchgelaufen. Und das bedeutet, dass Sie hier eben nacharbeiten müssen, weil das Ganze hier eben nicht funktioniert hat. Wenn ich das Ganze wieder verbessere und Test wieder neu ausführe, dann sehen Sie, hat alles funktioniert. Sie können natürlich neue Tests schreiben, ganz klar. Ich schreibe hier ein add 7+7 und erwarten ein 14 zurück. Funktioniert das Ganze noch? Jawohl! Wenn Sie hier oben einen Fehler gemacht haben, und sagen, ich erwarte ein 15 bei 7+7, dann funktioniert der Test natürlich nicht. Weil Sie sagen, ich erwarte eine 15, bekomme aber eine 14 zurück. Das wurde erwartet, das kam zurück. Das funktioniert nicht, und deswegen läuft dieser Test nicht durch. Sie können, wenn Sie möchten, hier auch nochmal zusätzlichen Text sich ausgeben lassen. Also hier haben wir jetzt einen Test, der failen wird, der fehlschlagen wird. Und jetzt sage ich, eigentlich habe ich eine 15 erwartet, was natürlich nicht stimmt, aber zu Testzwecken. Schauen wir mal was passiert. Und wenn ich jetzt hier das Ganze hochgehe, wo habe es ich, wiederhole ich das Ganze nochmal. Dann sehen Sie hier, eigentlich habe ich eine 15 erwartet. Das heißt, Sie können, wenn Sie wollen, sich hier nur noch eine Fehlermeldung ausgeben lassen. Mache ich in dem Falle nicht und ändere das jetzt noch mal auf die 14 und teste das nochmal zu guter Letzt. Jawohl, alles ist durchgelaufen. Wie gesagt, in den Aufgaben da ist dieser Testbereich hier schon immer vorgegeben. Also wenn Sie hier reingehen, dann haben Sie hier schon diese einzelnen Tests, und Sie können dann hier jeweils hier oben Ihren Test eintragen und dann das Ganze testen lassen. Gehen wir mal in die Primzahl rein. Jetzt sage ich mocha 02/ Primzahl. Hat natürlich nicht funktioniert, weil ich erwarte hier ein true oder false. Und diese Funktion gibt noch nichts zurück. Wenn ich mir es leicht mache und immer ein false zurückgebe, dann werden die ersten beiden Tests funktionieren. Ich bekomme hier eine andere Ausgabe, weil dieser Test wird funktionieren, es wird ein false erwartet, und es wird auch ein false zurückgegeben. Dieser Test wird auch funktionieren. Erst diese dritte wird fehlschlagen, er wartet ein true, bekommt aber ein false zurück. Es liegt natürlich daran, dass ich hier noch keine richtige Logik eingebaut habe, sondern immer false zurückgebe, was natürlich kein Sinn ergibt. Schauen wir es mal an. Wenn Sie dieses Test-Framework jetzt selber installieren können. Das Ganze beruht auf mocha. Also gehen wir mal ins Internet. Und dort gehen Sie entweder in mocha.js.org, oder Sie verwenden eine Suchmaschine, Ihrer Wahl und geben einfach mocha ein. Und da finden Sie alles zu diesem Test-Framework. Das beruht auf Node.js. Das heißt, Sie müssen Node.js installiert haben. Node.js bekommen Sie auf nodejs.org. Laden Sie sich das einfach für Ihre Version herunter, installieren Sie das Ganze, muss ich Ihnen nicht zeigen, wie Sie Software installieren. Vielleicht haben Sie es ja schon auf Ihrem Rechner drauf. Und dann haben Sie eine Laufzeitumgebung für JavaScript direkt auf Ihre Maschine, ohne, dass sie einen Browser brauchen. Hier finden Sie nun alle notwendigen Informationen zur Node.js. Und da haben Sie auch die Installation. Und Sie sehen, wenn Sie NPM installiert haben, dass der erste Schritt, dann können Sie mocha global installieren. Das werden Sie machen mit npm/Install--global mocha, oder auch nur - g mocha. Und dann, wenn Sie das getan haben, gegebenen die Kommandozeile dann neu gestartet haben. Also hier einmal zumachen, wieder aufmachen, dann können Sie mit dem Befehl mocha, solche Tests laufen lassen. Und Sie müssen dann einfach sagen mocha, gefolgt vom Namen der Datei, die Sie überprüfen wollen. Also hier zum Beispiel nochmal mein 00 Test. Ich gehe mal in die Lösungen hinein. Und hier habe ich die gesamten Lösungen, für dieses Training schon zusammengepackt. Und jetzt kann ich natürlich einzelne Lösungen testen lassen. Also zum Beispiel hier das letzte 25_dna.js. Funktioniert, ich kann aber auch alle Tests in diesem Verzeichnis, automatisch durchführen lassen. Einfach mocha, Sternchen schreiben. Und dann sehen Sie, 25 Tests wurden durchgeführt. Und die haben alle funktioniert, das heißt, alle meine Lösungen haben gegen meiner Tests auch erfolgreich bestanden.

Inhalt