Erfahren Sie, wie Sie mit `Sinon` Methoden von Klassen effektiv stubben können, um Unit Tests in JavaScript zu schreiben. Diese Anleitung vereinfacht den Prozess und bietet klare Beispiele, die Ihnen zum Erfolg verhelfen.
---
Dieses Video basiert auf der Frage https://stackoverflow.com/q/62266096/ gestellt von dem Nutzer 'newprogrammer' ( https://stackoverflow.com/u/4266752/ ) sowie auf der Antwort https://stackoverflow.com/a/62269609/ bereitgestellt von dem Nutzer 'andreyunugro' ( https://stackoverflow.com/u/12415733/ ) auf der Website 'Stack Overflow'. Vielen Dank an diese großartigen Nutzer und die Stackexchange-Community für ihre Beiträge.
Besuchen Sie diese Links, um den Originalinhalt und weitere Details zu sehen, z. B. alternative Lösungen, aktuelle Entwicklungen zum Thema, Kommentare, Versionsverlauf usw. Der ursprüngliche Titel der Frage lautete beispielsweise: sinon wont replace dependency
Außerdem steht der Inhalt (außer Musik) unter der Lizenz CC BY-SA https://meta.stackexchange.com/help/l...
Der ursprüngliche Fragenbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ), und der ursprüngliche Antwortbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ).
Falls Ihnen irgendetwas auffällt oder Unstimmigkeiten bestehen, schreiben Sie mir bitte an vlogize [AT] gmail [DOT] com.
---
Wie man Sinon zum Stubbing von Abhängigkeiten in JavaScript Unit Tests verwendet
Beim Entwickeln von Anwendungen in JavaScript ist Unit Testing eine wesentliche Praxis, um sicherzustellen, dass Ihr Code wie erwartet funktioniert. Eine häufige Herausforderung, der sich Entwickler beim Unit Testing stellen müssen, ist das Stubben von Abhängigkeiten, auf die eine Klasse angewiesen sein könnte. Wenn Sie auf das Problem gestoßen sind, dass Sinon eine Abhängigkeit nicht ersetzt, sind Sie nicht allein. In diesem Beitrag erläutern wir, wie Sie Sinon effektiv verwenden, um Klassenmethoden zu stubben und eventuelle Probleme zu beheben.
Das Problem: Abhängigkeit kann nicht gestubbt werden
Stellen Sie sich vor, Sie haben eine Klasse FirstClass, die von einer anderen Klasse DependencyClass abhängt. Sie möchten FirstClass testen, müssen aber die Ausgabe der Methode von DependencyClass während des Testvorgangs kontrollieren. Die Herausforderung entsteht, wenn Sie die Methode getResult() von DependencyClass nicht korrekt stubben können.
Hier ist eine vereinfachte Version des betreffenden Codes:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Sie möchten getResult() von DependencyClass stubben, um vordefinierte Werte zurückzugeben.
Die Lösung: Stubbing mit Sinon
Um eine Methode wie getResult() von DependencyClass zu stubben, sollten Sie folgende Schritte befolgen:
Schritt 1: Sinon installieren
Stellen Sie zunächst sicher, dass Sinon in Ihrem Projekt installiert ist. Sie können dies über npm erledigen:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 2: Method stubben
In Ihrer Testdatei erstellen Sie mit Sinon einen Stub für die Methode getResult(). So organisieren Sie den Test:
Benötigte Bibliotheken importieren: Importieren Sie Sinon und ggf. Assertion-Libraries wie Chai.
Methode stubben: Verwenden Sie sinon.stub(), um die Methode getResult() durch eine Fake-Implementierung zu ersetzen.
Verhalten prüfen: Rufen Sie Ihre Methode auf und prüfen Sie mit Assertions, ob das erwartete Ergebnis zurückgegeben wird.
Hier ist ein Beispiel für den kompletten Test:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 3: Tests ausführen
Ist Ihr Test vorbereitet, können Sie ihn mit Ihrem Test-Runner ausführen. Wenn Sie beispielsweise Mocha verwenden, läuft der Befehl:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Erwartete Ausgabe
Nach Ausführung des Tests sollten Sie eine erfolgreiche Testmeldung sehen, die bestätigt, dass Ihr Stub korrekt funktioniert hat:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Fazit
Die Verwendung von Sinon zum Stubben von Abhängigkeiten in Ihren Unit Tests kann den Testprozess vereinfachen und das Verhalten der Klasse unter Test isolieren. Die wichtigsten Schritte sind, einen Stub für die gewünschte Methode zu erstellen, dessen Ausgabe zu kontrollieren und das Verhalten in den Tests zu validieren. Wenn Sie diese Technik beherrschen, verbessern Sie Ihre Unit-Test-Fähigkeiten und entwickeln robustere Anwendungen.
Falls Sie weitere Fragen haben oder zusätzliche Klarstellungen wünschen, können Sie gerne in den Kommentaren nachfragen. Viel Erfolg beim Testen!
Информация по комментариям в разработке