För några år sedan lärde jag mig en bedrägligt enkel "hävning" ?? funktion från John Resig, för att testa din JavaScript. Förvånansvärt, med knappt fem eller sex linjer, ger denna kod en hög grad av makt och kontroll över din kod när du testar. Jag ska visa dig hur du använder den i dagens snabba snabbspets.
Enkel JavaScript-testning
Det är allt du behöver för de flesta grundläggande testning! Assertfunktionen accepterar två parametrar:
De hävda
funktionen skapar helt enkelt en listobjekt, tillämpar en klass av antingen "passera" eller "misslyckas" beroende på om testet är sant eller falskt, och lägger sedan till beskrivningen i listobjektet. Slutligen läggs det blocket kodade till sidan. Det är galet enkelt, men fungerar perfekt.
funktion add (num1, num2) return num1 + num2; var resultat = lägg till (5, 20); hävda (resultat == 24, "Kontrollera add-funktionen"); // ELLER hävda (lägg till (5, 20) == 24, "Kontrollera add-funktionen");
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var räknat = 0; för (; < len; i++ ) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300);Hoppsan! Vad hände?
Detta är ett vanligt problem, och svaret är att genomföra en nedläggning, så att vi kan komma ihåg värdet av "jag". Annars, som vi noterade ovan, kommer koden endast att göra det slutliga värdet i sekvensen: 5.
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var räknat = 0; för (; < len; i++ ) (function(i) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300); )(i);
Först kan det verka som om bara stora JavaScript-bibliotek och liknande kräver någon form av testning. det är dock långt ifrån sanningen. Som vi har demonstrerat kan även en enkel funktion, som Resigs "assert", potentiellt rädda oss från timmar av felsökning! Så vad använder du personligen för att testa din kod?