Anni fa, ho appreso un "assert" ingannevolmente semplice ?? funzione da John Resig, per testare il tuo JavaScript. Sorprendentemente, a sole cinque o sei righe, questo codice fornisce un grande livello di potenza e controllo sul codice, durante i test. Ti mostrerò come utilizzarlo nel suggerimento rapido del video di oggi.
Facile test di JavaScript
Questo è tutto ciò che serve per la maggior parte dei test di base! La funzione assert accetta due parametri:
Il affermare
la funzione quindi crea semplicemente una voce di elenco, applica una classe di "pass" o "fail", a seconda che il test abbia restituito true o false e quindi aggiunge la descrizione alla voce di elenco. Infine, quel blocco di codice viene aggiunto alla pagina. È pazzesco semplice, ma funziona perfettamente.
funzione add (num1, num2) return num1 + num2; var result = add (5, 20); assert (risultato == 24, 'Controllo della funzione di aggiunta'); // OR assert (add (5, 20) == 24, 'Controllo della funzione di aggiunta');
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; per (; i < len; i++ ) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300);Uh Oh! Quello che è successo?
Questo è un problema comune, e la risposta è implementare una chiusura, in modo che possiamo ricordare il valore di "i". Altrimenti, come abbiamo notato sopra, il codice mostrerà solo il valore finale nella sequenza: 5.
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; per (; i < len; i++ ) (function(i) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300); )(i);
Inizialmente, potrebbe sembrare che solo enormi librerie JavaScript e simili richiedono qualche forma di test; tuttavia, questo è lontano dalla verità. Come abbiamo dimostrato, anche una semplice funzione, come "assert" di Resig, può potenzialmente salvarci da ore di debugging! Quindi, cosa usi personalmente per testare il tuo codice?