Neliels ievads par JS vienību testēšanu un tās sistēmu un rīkiem
Dažu pēdējo gadu laikā tīmekļa izstrādes kodēšanas scenārijs ir eksponenciāli mainījies. Pasaule ir pārgājusi no tradicionālajām programmēšanas valodām, piemēram, Java, .NET un PHP. Viņi ir sākuši pielāgoties JavaScript ietvaram, pateicoties tā ērtai lietošanai priekšgalā, kā arī aizmugursistēmas un ātrās prototipēšanas iespējām.
Līdz ar šo pāreju rodas vajadzība pēc lieliskiem testēšanas rīkiem. Šajā rakstā es iepazīstināšu jūs ar dažiem labākajiem šajā nozarē izmantotajiem JavaScript vienību testēšanas rīkiem.
Vienības pārbaudes nozīme
Pirms sākam izprast pieejamos rīkus un to priekšrocības, ļaujiet mums saprast, kāpēc vienību pārbaude ir svarīga.
Vienības testēšana ir ieviestā koda testēšanas process moduļa līmenī. Vienības testēšana ļauj pārliecināties, vai izstrādātie moduļi atbilst biznesa dokumentā noteiktajām prasībām. Šie testi tiek rakstīti katram modulim, kad tie tiek izveidoti. Pēc katra jauna moduļa izstrādes tiek palaists viss testa gadījumu komplekts, lai nodrošinātu, ka izstrādātais modulis neietekmē esošos moduļus.
Javascript izstrāde var kļūt diezgan neorganizēta, ja netiks ievērotas pareizās konvencijas. Tāpēc ir jāizmanto pareizi izstrādes un vienību testēšanas rīki. Javascript vienību testi priekšgalam galvenokārt darbojas faktiskās vai bezgalvas pārlūkprogrammās
Šie testi ir vērsti uz lietojumprogrammas lietojamības un atsaucības pārbaudi. Aizmugursistēmas vienību testēšanas sistēmas koncentrējas uz biznesa loģikas un pakalpojumu galapunktu testēšanu NodeJS balstītam aizmugursistēmas kodam.
MochaJS
MochaJS ir vispopulārākā testēšanas sistēma, kas atbalsta aizmugursistēmas un priekšgala testēšanu. MochaJS ir elastīga bāze testu izstrādei pēc vajadzības. Tas veic testus asinhroni Chrome v8 dzinējā vai jebkurā citā pārlūkprogrammā.
Galvenās Mocha priekšrocības ir:
- Darbojas gan priekšgalam, gan aizmugursistēmai
- Atbalstiet NodeJS atkļūdotāju
- Nodrošina tīru pamatu testu izstrādei atbilstoši izstrādātāja ērtībām
- Atbalsta jebkuru pārlūkprogrammu, tostarp bezgalvu hroma bibliotēku
- Atbalsta objektu izsmiešanu, lai veiktu elastīgas aizmugursistēmas pārbaudes
Jasmīns
Jasmīns ir lietotāja uzvedības atdarinātājs, kas ļauj veikt pārbaudes gadījumus, kas ir līdzīgi lietotāju uzvedībai jūsu vietnē. Jasmine ir noderīgs, lai pārbaudītu priekšpusi, lai nodrošinātu redzamību, klikšķu skaidrību, kā arī lietotāja interfeisa reaģētspēju dažādās izšķirtspējās. Jasmine ļauj automatizēt lietotāju uzvedību ar muitas kavējumiem un gaidīšanas laiku, lai modelētu faktisko lietotāja uzvedību.
Galvenās Jasmine lietošanas priekšrocības ir:
- Zemākas pieskaitāmās izmaksas gandrīz nulles ārējās atkarības dēļ
- Līdzi nāk gandrīz visi nepieciešamie instrumenti, kas izņemti no kastes
- Atbalsta Frontend, kā arī Backend testus
- Kodēšana ir diezgan līdzīga rakstīšanai dabiskajā valodā
- Plaša dokumentācija, lai to izmantotu ar vairākiem ietvariem
Apskatiet šo izcilo vienību testēšana ar Jasmine tiešsaistes kursu.
AVA
AVA ir minimālistiska viegla testēšanas sistēma, kas izmanto Javascript asinhrono raksturu. AVA var veikt testus vienlaikus.
Tas ļauj jums gandrīz pilnībā kontrolēt to, ko jūs darāt. Tas galvenokārt ir vērsts uz NodeJS balstīta koda testu veikšanu. Dažas no priekšrocībām ietver:
- Vieglā pēda padara to ātrāku
- Testus veic asinhroni un vienlaikus
- Ātrāks nekā vairums citu testa sistēmu
- Vienkāršāka sintakse Javascript testiem
- Tīrākas steka pēdas visām iespējamām atklātajām kļūdām
JEST
JEST ir viens no populārākajiem ietvariem, ko Facebook regulāri uztur. Tas ir vēlamais ietvars React balstītajām lietojumprogrammām, jo tai nav nepieciešama nulles konfigurācija.
Tomēr to var izmantot ne tikai kopā ar React. Dažas no JEST funkcijām ir:
- Viens ietvars, kas piemērots NodeJS, VueJS, React, Angular un citiem Babel projektiem
- Vieglāk nokāpt no zemes
- Akas dokumentācija un kodēšanas standarta sintakse
- Izmantojot tiešos momentuzņēmumus, tas ļauj pārvaldīt testus ar lielākiem objektiem
Karma
Karma ir produktīva testēšanas vide, kas atbalsta visu populāro testu aprakstu sistēmu. Tas nodrošina jūsu lietojumprogrammai atbalstu testu veikšanai dažādās vidēs. Tam ir plašs atbalsts testu veikšanai dažādās ierīcēs un lietojumprogrammās.
Galvenais Karma izvēles faktors ir tās atbalsts integrācijai ar CI/CD dzinējiem un tālāk norādītajām funkcijām.
- Var izmantot, lai palaistu testus pārlūkprogrammās, vidēs bez galvas, piemēram, PhantomJS, kā arī ierīcēs
- Atbalsta testus, kas rakstīti lielākajā daļā populāro sistēmu
- Ļauj veikt testus attālināti citās ierīcēs, tikai ienākot failiem
- Atbalsta testa gadījumu atkļūdošanu, izmantojot pārlūku Chrome, kā arī Webstorm
Lente
Lente ir diezgan līdzīgs AVA savā arhitektūrā. Tas neatbalsta globālos failus, tāpēc katrā testa failā ir jāiekļauj lente. Šim lēmumam ierobežot mainīgo lielumu globēšanu ir arī savas priekšrocības. Dažas funkcijas izceļ:
- Notīriet vieglu nospiedumu
- Nodrošina tikai tukša metāla kodu un sniedz izstrādātājam pilnīgu brīvību rakstīt pārbaudes gadījumus
- Atbalsta ES6, Typescript un kafijas skriptu standartus
- Atbalsta testa izpildi lielākajā daļā mūsdienu pārlūkprogrammu
Cypress.io
Ciprese ir aizraujoša testēšanas sistēma, kas praktiski darbojas pārlūkprogrammā. Tas nodrošina interaktīvu lietotāja interfeisu pārlūkprogrammā tīmekļa lapas veidā. To var viegli instalēt operētājsistēmās Mac, Windows, kā arī Linux. Tas ir neatkarīgs testa izpildītājs, kuram nav cieši jāintegrē jūsu kods.
Leļļu tēlotājs
Leļļu tēlotājs ir lieliska testa izpildes sistēma, ko izveidojusi Google komanda. Tas nodrošina bezgalvu hroma API NodeJS lietojumprogrammām.
Puppeteer galvenokārt tiek izmantots pārlūkprogrammai raksturīgām lietojumprogrammām, piemēram, rāpuļprogrammas pārbaudei, lapas struktūras pārbaudei, ekrānuzņēmumu uzņemšanai un pat iepriekš renderēta satura tveršanai vienas lapas lietojumprogrammām. Papildu priekšrocības, izmantojot leļļu lomu, ir:
- Iespēja pārlūkprogrammai iestatīt pielāgotas izšķirtspējas un izmērus
- Atbalsts hroma paplašinājumu pārbaudei
- Automatizācijas atbalsts veidlapu iesniegšanai, UI testēšanai un tastatūras ievadīšanai
- Atbalsta ES6 funkcijas, piemēram, gaidīšanas un async
ChaiJS
ChaiJS sistēma koncentrējas uz uzvedību balstītu testēšanu. To var izmantot paralēli jebkuram citam ietvaram. Tas pastāv jau labu laiku un ir attīstījies līdz ar Javascript standartu attīstību.
ChaiJS darbojas ar mezglu, pārlūkprogrammu, dzelzceļu un ieguva lielisku atbalsta kopienu un dokumentāciju.
Quit
Quit – jaudīga testēšanas sistēma, kas paredzēta lietošanai ar priekšgalu. Tā ir pirmā JQuery, JQuery Mobile un JQuery UI bibliotēku izstrādātāju izvēle.
To var rakstīt kā neatkarīgu JS failu un izpildīt jebkurā tīmekļa lapā. Standarta testēšanas metode, izmantojot Qunit, ir iekļaut failu tīmekļa lapā un palaist testus, izmantojot spraudni Qunit. QUnit priekšrocības ietver:
- Var izmantot, lai izveidotu atkārtoti lietojamus testa skriptus
- Nodrošina izvietošanai gatavu tīmekļa saskarni, lai vizuāli skatītu testa gadījumu rezultātus
- Uz tā izveidots spraudņu kopums ļauj ātrāk izstrādāt testa gadījumus
Sinon
Sinon.js komplimentē vienību testēšanas sistēmu, lai viltotu/ņirgātos par īstām lietām. Jo testēšanas laikā jums nebūs visu datu! Tā atbalsta Chrome, IE 11, Firefox, Edge, Safari un Node.js izpildlaikus.
Laba alternatīva Sinon būtu testdouble.js
Secinājums
Vienību pārbaude ir būtiska, lai nodrošinātu, ka koda izmaiņas neizjauc lietojumprogrammu, un tā darbojas atbilstoši biznesa prasībām. Un es ceru, ka iepriekš minētais jums palīdzēs. Ja esat iesācējs, tad šis jums var patikt tiešsaistes kurss kas māca jums veikt JS vienību testēšanu ar ChaiJS, Sinon un Mocha.