1. Was ist Qunit?
Qunit (http://qunitjs.com/) ist ein sehr leistungsstarkes JavaScript -Unit -Test -Framework, mit dem Sie Ihren Code debuggen können. Es wurde von Mitgliedern des JQuery -Teams geschrieben und ist ein offizieller Test für JQuery. Qunit reicht jedoch im Allgemeinen aus, um regelmäßigen JavaScript-Code zu testen. Es kann sogar das serverseitige JavaScript über einige JavaScript-Motoren wie Rhino oder V8 testen.
Wenn Sie mit dem Konzept von "Unit -Tests" nicht vertraut sind, machen Sie sich bitte keine Sorgen. Dies ist nicht sehr schwer zu verstehen:
Die Codekopie lautet wie folgt:
Bei der Computerprogrammierung ist Unit -Tests (auch als Modultests bezeichnet) ein Test, bei dem die Korrektheitstests für Programmmodule (die kleinste Einheit des Softwaredesigns) durchgeführt werden. Die Programmeinheit ist die kleinste prüfbare Komponente für die Anwendung. In der prozeduralen Programmierung ist eine Einheit ein einzelnes Programm, eine Funktion, ein Verfahren usw.; Für die objektorientierte Programmierung ist die kleinste Einheit eine Methode, einschließlich Methoden in Basisklassen (Superklassen), abstrakten Klassen oder abgeleiteten Klassen (Unterklassen). - aus Wikipedia zitiert.
Einfach ausgedrückt, Sie schreiben Tests für jede Funktion Ihres Codes. Wenn alle diese Tests bestehen, können Sie sicher sein, dass der Code nicht fehlerhaft ist (normalerweise hängt dies davon ab, wie gründlich Ihr Test ist).
2. Warum möchten Sie Ihren Code testen?
Wenn Sie noch nie zuvor Unit -Tests geschrieben haben, können Sie Ihren Code direkt auf die Website hochladen, für eine Weile klicken, um festzustellen, ob Probleme auftreten, und versuchen Sie, die von Ihnen gefundenen Probleme zu lösen. Es wird viele Probleme mit dieser Methode geben.
Zunächst ist das sehr nervig. Klicken ist nicht einfach ein einfacher Job, da Sie sicherstellen müssen, dass alles angeklickt wird und Sie eine gute Chance haben, dass Sie ein oder zwei verpasst haben.
Zweitens ist alles, was Sie zum Testen tun, nicht wiederverwendbar, was bedeutet, dass es schwierig ist, sich zurückzuziehen. Was ist Rückkehr? Stellen Sie sich vor, Sie haben einen Code geschrieben und getestet, alle Fehler behoben, die Sie gefunden haben, und posten Sie ihn dann. Zu diesem Zeitpunkt sendet ein Benutzer ein Feedback zu den neuen Fehler und benötigt einige neue Funktionen. Sie kehren zum Code zurück, beheben diese neuen Fehler und fügen neue Funktionen hinzu. Was als nächstes passieren kann, ist, dass einige alte Mängel wieder auftauchen, was als "Rückkehr" bezeichnet wird. Schauen Sie, jetzt müssen Sie erneut klicken, und es ist möglich, dass Sie diese alten Lastfehler nicht finden können. Selbst wenn Sie dies tun, dauert es einige Zeit, um herauszufinden, dass Ihr Problem durch die Regression verursacht wird. Mithilfe von Unit -Tests schreiben Sie Tests, um Defekte zu finden. Sobald der Code geändert wird, filtern Sie den Test erneut durch. Wenn die Regression auftritt, werden einige Tests definitiv fehlschlagen, und Sie können sie leicht erkennen und wissen, welcher Teil des Codes den Fehler enthält. Nachdem Sie jetzt wissen, was Sie gerade geändert haben, kann es leicht gelöst werden.
Ein weiterer Vorteil von Unit-Tests, insbesondere für die Webentwicklung: Sie erleichtert das Cross-Browser-Kompatibilitätstests. Führen Sie einfach Ihre Testfälle in verschiedenen Browsern aus. Wenn es ein Problem mit einem Browser gibt, beheben Sie es und führen diese Testfälle erneut aus, um sicherzustellen, dass in anderen Browsern keine Regression vorliegt. Sobald alle den Test bestanden haben, können Sie mit Sicherheit sagen, dass alle Zielbrowser ihn unterstützen.
Ich möchte ein Projekt von John Ressig: Testswarm (http://testswarm.com/) erwähnen. Durch die Verteilung von JavaScript -Unit -Tests wird auf eine neue Ebene auf eine neue Ebene geführt. Dies ist eine Website, die viele Testfälle enthält, die jeder dorthin gehen kann, um einige Testfälle auszuführen und die Ergebnisse dann an den Server zurückzugeben. Auf diese Weise wird der Code sehr schnell auf verschiedenen Browsern getestet oder sogar auf verschiedenen Plattformen ausgeführt.
3.. Wie schreibt man Unit -Tests mit Qunit
Wie schreiben Sie also richtige Tests mit Qunit? Zuerst müssen Sie eine Testumgebung einrichten:
Die Codekopie lautet wie folgt:
<! DocType html>
<html>
<kopf>
<title> Qunit Test Suite </title>
<link rel = "styleSheet" href = "http://github.com/jquery/qunit/raw/master/qunit/qunit/qunit.css" type = "text/csS" media = "Bildschirm">
<script type = "text/javascript" src = "http://github.com/jquery/qunit/raw/master/qunit/qunit/qunit.js"> </script>
<!-Ihre Projektdatei geht hier->
<script type = "text/javaScript" src = "myProject.js"> </script>
<!-Ihre Testdatei geht hier->
<script type = "text/javaScript" src = "mytests.js"> </script>
</head>
<body>
<H1 ID = "Qunit-Header"> Qunit Test Suite </h1>
<H2 ID = "Qunit-Banner"> </H2>
<div id = "Qunit-Testrunner-Toolbar"> </div>
<H2 ID = "Qunit-Useragent"> </h2>
<ol id = "qunit-tests"> </ol>
</body>
</html>
Wie Sie sehen können, wird hier eine verwaltete Qunit -Framework -Version verwendet.
Der zu testende Code wurde zu MyProject.js hinzugefügt, und Ihr Test sollte in myTest.js eingefügt werden. Um diese Tests auszuführen, öffnen Sie einfach die HTML -Datei in einem Browser. Jetzt ist es Zeit, einige Tests zu schreiben.
Der Eckpfeiler der Einheitstests ist die Behauptung:
Die Behauptung ist ein Satz, der das Rückgabeergebnis Ihres Codes vorhersagt. Wenn die Vorhersage falsch ist und die Behauptung fehlschlägt, wissen Sie, dass etwas falsch ist.
Führen Sie Behauptungen aus und Sie sollten sie in den Testfall einfügen:
Die Codekopie lautet wie folgt:
// Testen wir diese Funktion
Funktion iseven (val) {
Return Val % 2 === 0;
}
test ('iseven ()', function () {
OK (iSeven (0), 'Null ist eine gleichmäßige Zahl');
ok (iseen (2), 'so ist zwei');
OK (Iseven (-4), 'so ist negative vier');
ok (! iSeven (1), 'man ist keine gleichmäßige Zahl');
ok (! iseven (-7), 'auch nicht negativ sieben');
})
Hier definieren wir eine Funktion: Iseven, mit der festgestellt wird, ob eine Nummer eine ungerade Zahl ist, und wir möchten diese Funktion testen, um zu bestätigen, dass sie nicht die falsche Antwort zurückgibt.
Wir rufen zuerst Test () auf (), der einen Testfall erstellt. Der erste Parameter ist eine Zeichenfolge, die im Ergebnis angezeigt wird, und der zweite Parameter ist eine Rückruffunktion, die unseren unterbrochenen Master enthält.
Wir haben 5 Behauptungen geschrieben, die alle Boolesche sind. Eine boolesche Behauptung, die erwartet, dass sein erstes Argument wahr ist. Der zweite Parameter ist immer noch die Meldung, die im Ergebnis angezeigt wird.
Hier ist, was Sie bekommen möchten, solange Sie den Test durchführen:
4.. Eingehende Lernreferenz
Die oben genannten führt nur kurz Qunit.js ein, und es gibt viele Behauptungsmethoden. Weitere Informationen finden Sie in der API -Dokumentation:
http://api.qunitjs.com/
Unit -Tests sind eine sehr gute Möglichkeit, Ihren Code zu testen, bevor Sie ihn veröffentlichen. Wenn Sie noch keine Unit -Tests geschrieben haben, ist jetzt die Zeit zu beginnen!