JavaScript: Unit-Testing

Specs, Expectations und Matchers

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Hauptbestandteile von Jasmine sind Suites, Specs, Expectations und Matchers. Was ist damit auf sich hat, beleuchtet dieser Film.
05:20

Transkript

Wenn Sie bereits Erfahrung mit anderen Unit Test frameworks gesammelt haben, Dann kennen Sie vielleicht die Triple-A oder AAA Arrange Act Assert Syntax. Jamsine Tests werden nicht nach Arrange Act Assert Syntax geschrieben, sondern sie folgen einem etwas anderen Aufbau. Und diesen Aufbau, den werden wir uns in diesem Video einmal gemeinsam anschauen. Äußerer Rahmen eines Jasmine-Tests ist die sogenannte Suite. So eine Test Suite ist eine zusammen- hängende Beschreibung von mehreren Test. Innerhalb einer Suite haben wir mehrere Specs. Eine Speck beschreibt eine bestimmte Funktionalität Ihre Software. Dies geschieht indem innerhalb einer Spec zunächst eine expectation aufgesetzt wird. Und dieser expectation wird anschließend mit einen sogenannten Matcher validiert. Innerhalb einer Suite haben wir in der Regel mehrere Specs. Außerdem können Suites ineinander geschachtelt werden. Wie sieht das Ganze nun konkret aus? Eine Suite ist nichts anderes, als ein Aufruf der describe Funktion an die wir zwei Argument übergeben. Das erste Argument was übergeben, ist der Name des Suite, in meinem Fall ist das Primetool. Das zweite ist eine Funktion und diese Funktion die ist der eigentliche Body, also der Inhalt unserer Suite. Innerhalb einer Suite haben wir dann mehrere Specs. Eine spec wird durch den Aufruf der IT Funktion eingeleitet. Und auch hier übergeben wir wieder zwei Argumente. Das erste ist eine Beschreibung der Spec. In diesem Fall hier ist es (inaudible). Ich gebe hier also meine Erwartungshaltung in lesbarem Text an, was von großem Vorteil, denn so können die Specs später auch von nicht Entwicklern gelesen und verstanden werden. Das zweite Argument ist eine Funktion und innerhalb dieser Funktion werde ich nun beliebigen Javascript Code ausführen Mit dem ich meine Spec überprüfen kann. In der Regel besteht dieser beliebige Javascript Code aus einem Aufruf an die expect function. Ich übergebe also hier welchen Wert ich überprüfen möchte, in diesem Fall hier überprüfe ich also den Rückgabewert der Funktion ist Prime am Primetool-Objekt. Und validiere dies mit Hilfe eines Matchers. An einen bestimmten Wert, bedeutet also ich prüfe jetzt hier ob dieser Wert True ist. Wie sieht das Ganze komplett aus? In einem vollständigen Beispiel sehen wir in der Zeile 1, die Anlage einer neuen Suite, in unserem Fall ist das die Primetool Suite. In der zeile 2 sehen wir dann die erste Spec. Nämlich, dass True für eine Primzahl zurückgegeben werden soll. Innerhalb unserer Spec sehen wir jetzt in der Zeile drei, dass wir zunächst einen Aufruf unexpect haben. Wir erwarten also, dass ein Aufruf von ist Prime mit dem Argument 3 to be true ist, also ein wahren Wert hat und dieses to be truthy ist unser Matcher. In der Zeile 5 sehen wir eine weitere Spec, nämlich das False für eine normale Zahl zurückgegeben wird, nach hier haben wieder einen Aufruf unexpect. Und einen Matcher. Wie eingangs bereits erwähnt, können Suites ineinander geschachtelt werden, das schauen wir uns am besten einmal in dem Jasmine Standard Beispiel an, dazu wechsel ich zu meinem Editor (inaudible). Ich habe hier das Jasmine Standard Beispiel geladen und die Datei player spec geöffnet. Wir sehen hier die Definition unserer Suite. Player, innerhalb dieser sweet Player werden also alle Tests für den Player stehen. Wir haben hier auch unsere erste Spec. die direkt auf Root Ebene dieser Suite angelegt ist nämlich dass der Player einen Song abspielen können soll. Und hier sind wir wieder das Zusammenspiel von expectation und Matcher. Was wir als nächstes sehen ist hier eine Zeile 18, dass wir eine geschachtelte Suite innerhalb der Player Suite haben. Nämlich die Suite für den Zustand, wenn der Song pausiert wurde. Und hier sehen wir jetzt, dass in diesem Fall 2 Specs angelegt werden. Schauen wir uns das Ganze mal im Ergebnis an. Wenn ich das, was wir eben gesehen haben, ausführe, dann sehen wir hier diese hieratische Darstellung Hier habe ich die erste Suite nämlich die PLayer Suite. Spec, dass der Player ein Song abspielen kann und hier sehe ich als nächstes die geschachtelte Suite, die den Zustand des Players angibt mit ihren beiden Specs. Wir haben also gelernt dass Jasmine Tests sus den Bestandteilen Test suites, Spec, Expectations und Matcher bestehen. Die Syntax unterscheidet sich leicht von der AAA-Syntax. Arange Act Assert, wie wir sie von anderen Frameworks kennen. Was wir hier machen ist, wir schreiben unserem Test in einer BDD Syntax, behavior driven development, und das ganze sieht so aus, dass wir Suites haben wir haben Specs, Expectation und Matchers.

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!