Beim Refactoring von JavaScript hoffe ich, ein benutzerfreundliches Test-Framework einzuführen, um den reibungslosen Fortschritt des Refactorings sicherzustellen. Auch in Zukunft kann ich die Korrektheit der JavaScript-Logik durch Testcode sicherstellen.
JsUnit (http://sourceforge.net/projects/jsunit/, http://www.jsunit.net/)
JsUnit ist ein unabhängiges JavaScript-Unit-Test-Framework, das JUnit ähnelt und keine Schwierigkeiten aufweist In den ersten Schritten ähnelt die bereitgestellte Assert-Methode auch JUnit, einschließlich der herkömmlichen Methoden setUp und TearDown, mit zusätzlichen JavaScript-spezifischen Methoden wie AssertNaN und AssertUndefiniert. Die Testseite muss die js-Datei jsUnitCore.js in
einführen.
Testsuite-Unterstützung: addTestPage und addTestSuite werden bereitgestellt;
Testprotokoll-Unterstützung: einschließlich drei Protokollebenen: Warnung, Info und Debug. Die Verwendung ist nicht angemessen viele Protokolle im formalen Code. Außerdem wird Protokoll nur unter FF unterstützt.
Tausend Worte reichen nicht für ein Beispiel:
Js-Code
;script language ="javascript" src="play.js"> //Module JS
function testWithMainProcess() {
AssertEquals("Web Play URL", "## http:/ /...##", webOnlinePlay());
}
Der Projektcode ist voller Ajax-Aufrufe. Um Unit-Tests durchzuführen, scheint Stapelung unvermeidlich zu sein. Es gibt viele Mock-Tools, wie zum Beispiel QMock, die für JQuery geeignet sind:
Js code
var mockJquery = new Mock();
mockJquery
.expects(1)
.method('ajax' )
.withArguments({
url: 'http://xxx,
success: Function,
dataType: "jsonp"
})
.callFunctionWith({ feed : { Eintrag: „Datenantwort“}}); ist fast das Gleiche.
Studenten, die sich für JavaScript-Testframeworks interessieren, können sich auch über andere Testframeworks wie JSpec informieren.
Es wird empfohlen, den Unit-Testcode im Paket des Moduls zu platzieren: test.html Selbst unter idealen Bedingungen wird das Modul bei separater Veröffentlichung von zuverlässigem Front-End-Code für Testfälle begleitet .
Mit welchem JavaScript-Code soll ich beginnen?
1. Funktionscode. Ein solcher Code gewährleistet eine gute Unabhängigkeit, erfordert kein Abstecken und verursacht geringe Testkosten. Wenn Sie die Bedeutung von Funktionscode nicht verstehen, lesen Sie bitte „Funktionale Programmierung“.
2. Komplexe Logik.
Möchten Sie TDD ausprobieren? Der Einsatz in unserem Team wird nicht empfohlen. Front-End-TDD erfordert höhere Fähigkeiten und höhere Anforderungen an menschliche Faktoren. Wenn eines Tages die TDD des Hintergrund-Java-Codes abgeschlossen ist, wird es keinen wesentlichen Unterschied geben, wenn er durch JavaScript-Code ersetzt wird.
Wenn der Effekt angemessen ist, warum kann JavaScript UT nicht im Rahmen der kontinuierlichen Integration in ICP-CI integriert werden?