Demystifying JavaScript-Testing

0
18

Mange mennesker har messaged meg, forvirret om hvor du skal komme i gang med testing. Akkurat som alt annet i programvaren, og vi arbeider hardt for å bygge abstraksjoner for å gjøre vår jobb enklere. Men at mengden av abstraksjon utvikler seg over tid, til de som virkelig forstår det er de som har bygget abstraksjon i første omgang. Alle andre er igjen med å ta form, Api-er, og verktøy til pålydende verdi og sliter med å få ting til å fungere.

En ting jeg tror om abstraksjon i koden som abstraksjon er ikke magi — det er kode. En annen ting jeg tror jeg om abstraksjon i koden er at det er lettere å lære ved å gjøre.

Tenk deg at en mindre erfaren ingeniør tilnærminger deg. De er sultne på å lære, de ønsker å være sikre i sin egen kode, og de er klare til å starte testing. 👍 Noensinne forberedt på å lære fra deg, de har skrevet ned en liste over termer, Api-er, og konseptene de vil gjerne at du definerer for dem:

  • Påstand
  • Testing Rammeverk
  • Den beskriver/det/beforeEach/afterEach/test funksjoner
  • Spotter/Stubber/Test Dobbeltrom/Spioner
  • Enhet/Integrering/ende-til-Ende/Funksjonelle/Tilgjengelighet/Mottak/Manuell testing

Så…

Kan du rangle av definisjoner for den spirende ingeniør? Kan du forklare forskjellen mellom en påstand bibliotek og testing rammeverk? Eller er de det enklere for deg å identifisere enn forklare?

Her er poenget. Jo bedre du forstår disse vilkårene og abstraksjoner, jo mer effektiv vil du være på å lære dem. Og hvis du kan lære dem, vil du bli mer effektiv ved å bruke dem, også.

Skriv inn et lære-en-ingeniør-til-fisk øyeblikk. Visste du at du kan skrive inn din egen påstand bibliotek og testing rammeverk? Vi tenker ofte på disse abstraksjoner som utenfor våre evner, men det er de ikke. Hver av de populære påstanden biblioteker og rammer i gang med en eneste linje med kode, fulgt av en annen, og så en annen. Du trenger ikke noe verktøy for å skrive en enkel test.

Her er et eksempel:

const {sum} = kreve(‘../math’)
const resultat = sum(3, 7)
const forventet = 10
if (resultat !== forventet) {
kaste nye Error(`${resultat} er ikke lik ${forventet}`)
}

Sette det i en modul kalt test.js og kjør det med node test.js og, poof, kan du begynne å bli trygg på at summen funksjon fra math.js modulen fungerer som forventet. Gjør som kjører på CI og du kan få tillit til at det ikke vil bryte endringer som er gjort til codebase. 🏆

La oss se hva en fiasko ville se ut med dette:

Terminal-vindu som viser en feilmelding som indikerer -4 ikke er lik 10.

Så tydeligvis vår sum funksjon er å trekke snarere enn å legge til, og vi har vært i stand til å automatisk oppdage at gjennom dette skriptet. Alt vi trenger å gjøre nå er å løse summen funksjon, kjøre våre test script igjen og:

Terminal-vinduet som viser at vi kjørte våre test script og ingen feil ble logget.

Fantastisk! Skriptet avsluttes uten en feil, så vet vi at summen funksjon er å fungere. Dette er essensen av en testing rammeverk. Det er mye mer til det (f.eks. bedre feilmeldinger, bedre syn, osv.), men dette er et godt utgangspunkt for å forstå grunnlaget.

Når du forstår hvordan abstraksjoner arbeid på et grunnleggende nivå, vil du sannsynligvis ønske å bruke dem, fordi, hei, du nettopp har lært å fiske, og nå kan du dra på fisketur. Og vi har noen ganske fenomenal fiske meningsmålinger, uh, verktøy tilgjengelig for oss. Min favoritt er den ment som en Spøk testing plattform. Det er utrolig dyktige, fullt utstyrt og tillater meg å skrive tester som kan gi meg den selvtilliten jeg trenger for å ikke bryte ting som jeg endre kode.

Jeg føler meg som grunnleggende er så viktig at jeg inkluderte en hel modul om det på TestingJavaScript.com. Dette er stedet hvor du kan lære deg den smarte, effektive måten å teste noen JavaScript-program. Jeg er veldig fornøyd med hva jeg har opprettet for deg. Jeg tror det vil bidra til å akselerere din forståelse av testverktøy og abstraksjoner ved å gi deg muligheten til å implementere deler fra bunnen av. (Håp) resultat? Du kan begynne å skrive tester som er stabile og bygget for å skape tillit i koden din dag etter dag. 🎣

Early bird salg er det som skjer akkurat nå! 40% av hvert nivå! Salget går unna i de neste dagene så ta tak i dette ASAP!

TestingJavaScript.com – Lær smarte, effektive måten å teste noen JavaScript-program.

P. S. prøve dette: Tweet hva er forskjellen mellom en testing rammeverk, og en påstand biblioteket? I kurset mitt, jeg vil ikke bare forklare det, og vi vil bygge vår egen!