Test di JavaScript facile e veloce con Assert

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.


Screencast completo



Codice "Assert"

     Facile test di JavaScript     

    Questo è tutto ciò che serve per la maggior parte dei test di base! La funzione assert accetta due parametri:

    1. risultato: Un valore booleano, che indica se il test ha superato o fallito
    2. descrizione: Una breve descrizione del tuo test.

    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.


    Test 1: il tuo primo esempio

     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');


    Test 2: chiusure

     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);


    Conclusione

    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?