Erste Schritte mit Jasmin

Inhaltsverzeichnis
Heute ist ein guter Zeitpunkt, um Entwickler zu sein in JavaScriptMan kann sagen, dass es sogar spannend ist, da die Technologien, die es umfassen, ziemlich ausgereift sind, Webbrowser standardisierter sind und jeden Tag mehr neue Dinge zum Spielen und Experimentieren erscheinen.
JavaScript ist eine etablierte Sprache und das Web ist heute die Hauptplattform, auf der das Aufkommen von Single-Page-Anwendungen, die Verbreitung von MVC-Frameworks wie z AngularJS oder Backbone.js, mit serverseitigem JavaScript mit Node.js und sogar mobile Anwendungen, die ausschließlich mit HTML, CSS Ja JavaScript mit Technologien wie Telefonlücke.
Von seinen bescheidenen Anfängen an war JavaScript dafür verantwortlich, als Sprache zu dienen, um die Daten zu manipulieren und sie in den Formularen in . zu validieren HTML und derzeit wird es verwendet, um die leistungsstarken Anwendungen zu erstellen, die wir im Web sehen können. Wenn man das sieht, kann man sagen, dass JavaScript Es hat einen langen Weg zurückgelegt, ebenso wie die Tools, die erschienen sind, um sicherzustellen, dass wir die gleiche Qualität haben, als ob wir in anderen Sprachen wären.
Eines dieser Tools ist Jasmin, das nichts anderes als ein verhaltensorientiertes Entwicklungsframework ist und es uns ermöglicht, automatisierte Unit-Tests für die Programmiersprache zu erstellen JavaScript. Bevor wir dieses Tool vollständig nutzen, sehen wir uns den Hintergrund an, der zu seiner Entwicklung geführt hat, sowie die wichtigsten Konzepte, um zu verstehen, wie es funktioniert JavaScript.
Heute zweifelt niemand an der Kraft von JavaScriptEs gibt jedoch Komplikationen bei der Arbeit auf der Clientseite und einer der offensichtlichen Gründe ist, dass wir die Ausführungsumgebung nicht kontrollieren können. Auf dem Server haben wir dieses Problem nicht, da wir eine bestimmte Version von ausführen können Node.js im Fall des Webbrowsers können wir dem Benutzer jedoch nicht sagen, dass er eine bestimmte Version von . verwenden soll Chrom oder Feuerfuchs.
Die Sprache JavaScript ist in den Spezifikationen definiert ECMAScript Daher kann jeder Browser seine eigene Implementierung der Umgebung haben, um ihn auszuführen, was zu kleinen Unterschieden oder Fehlern zwischen ihnen führt. Jedes Objekt von JavaScript es ist veränderbar, also haben wir keine Kontrolle, um zu verhindern, dass ein Modul Teile anderer überschreibt. Um dies zu veranschaulichen, schauen wir uns ein kleines Codesegment an, in dem wir sehen können, wie einfach es ist, die globale Funktion zu überschreiben Konsole.log:
 console.log ('test'); console.log = 'break'; console.log ('test');
Sehen wir uns die Antwort per Konsole an, wo wir den Fehler deutlich sehen können, da wir die Funktion überschrieben haben:

Diese Art, die Sprache zu sein, war eine Entscheidung, die in ihrem Design getroffen wurde, da sie es Entwicklern ermöglichte, fehlende Funktionalitäten hinzuzufügen, aber angesichts dieser Vielseitigkeit ist es relativ einfacher, Fehler zu machen, selbst eine neuere Version der Sprache führte die Funktion Objekt.Siegel was dies verhinderte, aber seine Unterstützung erstreckte sich nur auf wenige Browser.
Ein weiteres Problem, mit dem wir uns präsentieren JavaScript ist der Umgang mit Typen, in anderen Sprachen wird ein Ausdruck wie '1' + 1 wahrscheinlich einen Fehler auslösen, aber in JavaScript dies würde zu 11 führen. Dies kann zu einigen schwer zu findenden Problemen führen, zum Beispiel angenommen, wir haben Folgendes:
 var a = 1, b = '5', c = 4, d = 2; var-Ergebnis = a + b + c * d; console.log (Ergebnis);
Sehen wir uns die Antwort über die Konsole an, wenn wir unseren Code im Browser ausführen:

Wie wir sehen, war das Ergebnis ein String. Wenn wir also eine Zahl in einer speziellen Funktion oder Routine erwarten, kann dies zu einem Problem führen, und das Finden dieses Fehlers kann bedeuten, dass einige Stunden unserer kostbaren Entwicklungszeit verschwendet werden.
Es ist wichtig zu erwähnen, dass die gerade erwähnten Punkte kein Grund sind, es nicht zu verwenden JavaScriptEs ist einfach zu sehen, wo es einige Schwächen hat, aber das bedeutet nicht, dass es eine schlechte Sprache ist, wir können sogar versichern, dass die Möglichkeiten, die es uns bietet, in Bezug auf die Anwendungsentwicklung unendlich sind und was noch besser ist, wir haben immer noch Werkzeuge, die wir werden sie mit den besten Praktiken derselben helfen.
Wie wir erwähnt haben, Jasmin Es ist ein kleines Framework, das uns bei unseren Unit-Tests innerhalb unserer Entwicklungen hilft und das die Philosophie der verhaltensorientierten Entwicklung verwendet, die wir später erläutern werden, aber bevor wir fortfahren, sehen wir uns ein wichtiges Konzept an, nämlich dass es sich um Unit-Tests handelt.
Unit-TestsDas Komponententests Sie sind Codestücke, die die Funktionalitäten der Units im Code unserer Anwendung testen, wobei der Entwickler zu Beginn dieses Weges mit einer traditionellen Philosophie belassen wurde, die sich auf die testorientierte Entwicklung statt auf die verhaltensorientierte Entwicklung konzentrierte.
Deshalb haben die Macher von Jasmin Sie strukturieren diese traditionelle Testmethode um, bei der der Entwickler kein klares Bild davon hatte, wo er im Testprozess beginnen sollte, nicht wusste, was er testen sollte und wie groß ein Testmodul sein könnte oder wie er einen dieser Tests nennen würde . Wenn wir zum Beispiel die Philosophie von Jasmin Um die Tests durchzuführen, nehmen wir an, wir haben einen Musik-Player, der die folgenden Akzeptanzkriterien erfüllt: Wenn ein Song pausiert wird, muss der Player dem Player anzeigen, dass der Song pausiert wurde.
Wir können also das Kriterium nehmen und es wie folgt aufteilen:
  • Gegeben (Ein erster Kontext)
  • Wann (Das Ereignis tritt ein)
  • Dann (Eine Aktion wird ausgeführt)
Jasmin ermöglicht es uns, das Obige in einen Code zu übersetzen, der so geschrieben wird, dass er die Werte unserer Anwendung ohne Probleme widerspiegelt, der so aussehen kann:
 beschreiben ("Player", Funktion () {beschreiben ("Wenn das Lied angehalten ist", Funktion () {es ("Es muss anzeigen, dass das Lied angehalten ist", Funktion () {});});});
Wie wir sehen, wurden unsere Kriterien übertragen auf Jasmin ohne viel Mühe, wobei wir sagen können, dass jedes Kriterium in einen Unit-Test übersetzt wird.
Wir könnten uns schon anschauen wie Jasmin Es verarbeitet die Kriterien und übersetzt sie in seine Syntax, indem es die Komponententests dafür erstellt, aber um dorthin zu gelangen, sehen wir uns zuerst an, wie man das Framework erhält. Dazu gehen wir auf die Projektseite und laden sie herunter:

VERGRÖSSERN

Beim Entpacken müssen wir in den Ordner gehen dist, dort finden wir alle Distributionen von Jasmin bis heute, wo wir es verwenden möchten, müssen wir die gewünschte Distribution auswählen, vorzugsweise die neueste, und in den Ordner unseres Projekts entpacken, den Ordner eingeben und die Datei ausführen SpecRunner.html:

Jasmin Es enthält standardmäßig einige Beispiele für einige Unit-Tests, bei denen die Datei SpecRunner.html ist dafür verantwortlich, den Jasmine-Code zu verlinken, der die Quelldateien und die Dateien zum Testen enthält, sehen wir uns seinen Inhalt an:
 Jasmine Spec Runner v2.2.0 
Wie wir sehen, ist es recht einfach und ermöglicht es uns, eine Basisstruktur für unsere Tests zu definieren, die uns eine Hilfestellung gibt, wo wir in dieser Welt der Unit-Tests anfangen sollen. Es versteht sich von selbst, dass es eine gute Idee ist, einen Blick auf den Code unserer Distribution von zu werfen Jasmin um uns mit der Funktionsweise vertraut zu machen.
Das ist wichtig zu erwähnen Jasmin nicht nur auf Code beschränkt, der mit reinem JavaScript geschrieben wurde, wir können auch diese Anwendungen testen, die mit erstellt wurden Backbone.js oder AngularJS, sogar seine Vielseitigkeit geht viel weiter und ermöglicht es uns, serverseitige Tests durchzuführen, falls wir es verwenden Node.js.
EmpfehlungJasmin Es ist ein Framework, das uns bei Unit-Tests sehr hilft, aber die darin verwendeten Konzepte sind nicht so einfach, es wird von bestimmten fortgeschrittenen Praktiken von . unterstützt JavaScript wie das Generieren des HTML mit der Funktion createDom () um die Elemente darin einzufügen, um einige dieser Eigenschaften zu erwähnen, daher empfehlen wir einen Spaziergang durch die Dokumentation von JavaScript um für zukünftige Tutorials viel besser vorbereitet zu sein.
Damit haben wir dieses Tutorial abgeschlossen, in dem wir unsere ersten Schritte mit machen konnten Jasmin, ein wenig durch die Motivation, Tools zum Testen zu erstellen JavaScript und wie verhaltensorientierte Entwicklung uns hilft, bessere Tests zu erstellen, auch zu sehen, wie Jasmin ist ein ziemlich flexibles Framework zum Testen, das es uns ermöglicht, dieselbe Instanz zum Testen aller Arten von Code in zu verwenden JavaScript in unseren Anwendungen.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave