DOE DE GOE­DE TESTS

HEB ER VER­TROU­WEN IN DAT JE CO­DE DE TESTS DOORSTAAT

Web Designer Magazine - - Programmeer Eersteklas Javascript -

Co­de kan zich soms raar ge­dra­gen. Zelfs als je hem dub­bel checkt, zijn er al­tijd nog af­wij­ken­de si­tu­a­ties die on­voor­spel­baar ge­drag op­le­ve­ren of die er in het slecht­ste ge­val voor zor­gen dat de boel er he­le­maal mee op­houdt. Eén en­ke­le un­hand­led er­ror in Javascript kan een he­le ap­pli­ca­tie on­der­uit ha­len.

Ge­luk­kig zijn er meer­de­re ma­nie­ren om au­to­ma­ti­sche tests uit te voe­ren om te voor­ko­men dat dat ge­beurt. Ie­der test een an­der as­pect van de co­de om ze­ker te we­ten dat al­le de­len doen wat ze moe­ten doen. Tes­ten is een vak apart. Er zijn drie be­lang­rij­ke ni­veaus waar­op de co­de ge­con­tro­leerd moet wor­den om de­ze te kun­nen ver­trou­wen.

Unit-tests zijn een ma­nier om er ze­ker van te zijn dat al­le on­der­de­len van een pro­ject on­af­han­ke­lijk wer­ken. Als er iets aan een sec­tie ver­an­dert, kun­nen er au­to­ma­tisch tests ge­daan wor­den om te kij­ken of de rest blijft wer­ken zo­als be­doeld. Ze moe­ten ba­sic ge­noeg zijn om snel te run­nen en vol­doen­de tes­ten voor al­le si­tu­a­ties. Als er meer unit-tests ge­schre­ven zijn en meer co­de on­der een test­ca­se valt, hoeft er min­der hand­ma­tig ge­test te wor­den. Het kost even wat tijd om op te zet­ten, maar je wint er la­ter een boel mee te­rug door niet hand­ma­tig naar bugs te hoe­ven zoe­ken.

Er zijn twee be­na­de­rin­gen voor unit-tests. Bij TDD – test-dri­ven de­vel­op­ment – de­fi­ni­ë­ren tests de func­ti­o­na­li­teit van een unit. Door tests te schrij­ven vóór de co­de te pro­gram­me­ren, weet je dat de co­de het juis­te zal gaan doen. BDD – be­ha­vi­our-dri­ven de­vel­op­ment – ge­bruikt de­zelf­de benadering, maar fo­cust meer op wat het re­sul­taat is in plaats van hoe het tot stand is ge­ko­men. Ie­de­re test-unit moet zich rich­ten op een com­po­nent te­ge­lijk. Als an­de­re fac­to­ren er­bij ko­men, zo­als net­werkre­quests of brow­ser-api’s, mo­gen die geen on­der­deel van de test zijn. Als er iets van hen no­dig is, is Javascript flexibel ge­noeg om dum­my-ob­jec­ten toe te staan om hun ge­drag te emu­le­ren. Die he­ten ‘test dou­bles’ en zijn on­der­deel van an­de­re test­pack­a­ges. Unit-tests con­tro­le­ren of de in­di­vi­du­e­le on­der­de­len van een si­te goed wer­ken, maar dat ga­ran­deert niet dat ze goed sa­men­wer­ken. In­te­gra­tie­tests ne­men die rol op zich door bij­voor­beeld te con­tro­le­ren of ver­stuur­de for­mu­lie­ren ser­ver­si­de goed wor­den op­ge­sla­gen. Zo’n test wordt meest­al één keer uit­ge­voerd na­dat al­le af­zon­der­lij­ke units ge­maakt en ge­test zijn. Als laat­ste con­tro­le­ren func­ti­o­ne­le tests dat al­les goed werkt van­uit het oog­punt van de ge­brui­ker. Die hig­her le­vel tests zor­gen er­voor dat een be­zoe­ker za­ken als het in­vul­len van een aan­meld­for­mu­lier zon­der pro­ble­men kan doen. Com­man­do’s die het in­ty­pen van tek­sten en het klik­ken op knop­pen si­mu­le­ren, kun­nen in brow­sers uit­ge­voerd wor­den om er­voor te zor­gen dat ze op de juis­te wij­ze on­der­steund wor­den.

Newspapers in Dutch

Newspapers from Netherlands

© PressReader. All rights reserved.