Jaren geleden leerde ik een bedrieglijk eenvoudig "beweren" ?? functie van John Resig, voor het testen van uw JavaScript. Verbazingwekkend genoeg biedt deze code op nauwelijks vijf of zes regels een geweldig niveau van controle over uw code tijdens het testen. Ik zal je laten zien hoe je het kunt gebruiken in de snelle videotip van vandaag.
Eenvoudig JavaScript-testen
Dat is alles wat u nodig heeft voor de meeste basistests! De assert-functie accepteert twee parameters:
De beweren
functie maakt dan eenvoudig een lijstitem, past een klasse toe van "pass" of "fail", afhankelijk van of uw test true of false heeft geretourneerd en voegt vervolgens de beschrijving toe aan het lijstitem. Ten slotte wordt dat blok gecodeerd toegevoegd aan de pagina. Het is gek eenvoudig, maar werkt perfect.
functie add (num1, num2) return num1 + num2; var result = add (5, 20); beweren (result == 24, 'De toevoegfunctie controleren'); // OF bevestig (voeg toe (5, 20) == 24, 'De toevoegfunctie controleren');
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; voor (; < len; i++ ) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300);Oh Oh! Wat is er gebeurd?
Dit is een veelvoorkomende kwestie en het antwoord is om een afsluiting te implementeren, zodat we de waarde van 'i' kunnen onthouden. Anders, zoals we hierboven opmerkten, geeft de code alleen de uiteindelijke waarde in de reeks weer: 5.
var someArray = [1,2,3,4,5], len = someArray.length, i = 0; var count = 0; voor (; < len; i++ ) (function(i) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300); )(i);
In eerste instantie kan het lijken alsof alleen grote JavaScript-bibliotheken en dergelijke enige vorm van testen vereisen; dat is echter verre van de waarheid. Zoals we hebben aangetoond, kan zelfs een eenvoudige functie, zoals de bewering van Resig, ons mogelijk uren achter het debuggen besparen! Dus wat doe je persoonlijk om je code te testen??