For mange år siden lærte jeg en villedende enkel "hevn"? Fungerer fra John Resig, for å teste JavaScript. Utrolig, på knapt fem eller seks linjer, gir denne koden et stort nivå av strøm og kontroll over koden din, når du tester. Jeg skal vise deg hvordan du bruker den i dagens videoprat.
Enkel JavaScript-testing
Det er alt du trenger for de fleste grunnleggende testing! Påstandsfunksjonen godtar to parametere:
De hevde
funksjon så oppretter du bare en liste element, bruker en klasse av enten "pass" eller "mislykkes", avhengig av om testen ble returnert sann eller falsk, og legger deretter til beskrivelsen i listeposten. Endelig legges den koden til koden til siden. Det er galt enkelt, men fungerer perfekt.
funksjon legge til (num1, num2) return num1 + num2; var resultat = legg til (5, 20); assert (resultat == 24, 'Kontrollerer add-funksjonen'); // ELLER hevde (legg til (5, 20) == 24, 'Kontroller add-funksjonen');
var noenArray = [1,2,3,4,5], len = someArray.length, i = 0; var teller = 0; for (; < len; i++ ) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300);UH oh! Hva skjedde?
Dette er et vanlig problem, og svaret er å gjennomføre en lukning, slik at vi kan huske verdien av "jeg." Ellers, som vi la merke til ovenfor, vil koden bare gi den endelige verdien i sekvensen: 5.
var noenArray = [1,2,3,4,5], len = someArray.length, i = 0; var teller = 0; for (; < len; i++ ) (function(i) setTimeout(function() assert( count++ === i, 'Checking the value of: ' + i ); , i * 300); )(i);
I begynnelsen kan det virke som om bare store JavaScript-biblioteker og lignende krever noen form for testing; Det er imidlertid langt fra sannheten. Som vi har demonstrert, kan en enkel funksjon, som Resig's "assert", potensielt spare oss fra timer med feilsøking! Så hva bruker du personlig til å teste koden din?