Vor Jahren habe ich eine täuschend einfache "Behauptung" gelernt? Funktion von John Resig zum Testen Ihres JavaScript. Erstaunlicherweise bietet dieser Code bei nur fünf oder sechs Zeilen beim Testen ein hohes Maß an Leistung und Kontrolle über Ihren Code. Ich zeige Ihnen, wie Sie es im heutigen Quick-Tipp für Videos verwenden können.
Einfache JavaScript-Prüfung
Das ist alles, was Sie für die meisten grundlegenden Tests benötigen! Die Assert-Funktion akzeptiert zwei Parameter:
Das behaupten
Die Funktion erstellt dann einfach ein Listenelement, wendet eine Klasse entweder „bestanden“ oder „nicht bestanden“ an, abhängig davon, ob Ihr Test wahr oder falsch zurückgegeben hat, und hängt dann die Beschreibung an das Listenelement an. Schließlich wird der codierte Block der Seite hinzugefügt. Es ist verrückt einfach, funktioniert aber perfekt.
Funktion add (num1, num2) return num1 + num2; var result = add (5, 20); assert (Ergebnis == 24, 'Addierfunktion prüfen'); // ODER-Assert (add (5, 20) == 24, 'Add-Funktion überprüfen');
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; für (; i < len; i++ ) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300);Oh oh! Was ist passiert?
Dies ist ein allgemeines Problem, und die Antwort ist, eine Schließung zu implementieren, damit wir uns an den Wert von "i" erinnern können. Andernfalls wird, wie oben erwähnt, der Code nur den endgültigen Wert in der folgenden Reihenfolge wiedergeben: 5.
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; für (; i < len; i++ ) (function(i) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300); )(i);
Auf den ersten Blick scheint es so, als würden nur große JavaScript-Bibliotheken und solche eine Form von Tests erfordern. Das ist jedoch weit von der Wahrheit entfernt. Wie wir gezeigt haben, kann uns sogar eine einfache Funktion, wie Resigs "Assert", möglicherweise vor stundenlangem Debugging bewahren! Also, was verwenden Sie persönlich, um Ihren Code zu testen??