'N Klein inleiding tot die toetsing van JS-eenhede en die raamwerk en gereedskap daarvan
0.1 Belangrikheid van eenheidstoetsing
Belangrikheid van eenheidstoetsing
Voordat ons begin verstaan ​​wat die beskikbare instrumente en die voordele daarvan is, moet ons verstaan ​​waarom eenheidstoetsing belangrik is.
Eenheidstoetsing is die proses om die geïmplementeerde kode op modulevlak te toets. Met eenheidstoetsing kan u verseker dat u ontwikkelde modules voldoen aan die vereistes soos uiteengesit in die besigheidsdokument. Hierdie toetse word geskryf vir elke module soos dit gemaak word. Na elke nuwe module-ontwikkeling word die volledige reeks toetse uitgevoer om te verseker dat geen bestaande modules deur die ontwikkelde module beïnvloed word nie.
Hierdie toetse fokus op die toetsing van die bruikbaarheid en reaksie van die toepassing. Die raamwerke vir die toetsing van die backend-eenhede fokus op die toetsing van sakelogika en dienspunte vir NodeJS-gebaseerde backend-kode.
MochaJS is die gewildste toetsraamwerk wat backend- en frontend-toetsing ondersteun. MochaJS is 'n buigsame basis vir die ontwikkeling van toetse soos nodig. Dit voer die toetse asinkroon op Chrome v8-enjin of enige ander blaaier.
Die belangrikste voordele van Mokka sluit in:
Werk vir frontend sowel as backend
Ondersteun NodeJS ontfouter
Bied 'n skoon basis om toetse te ontwikkel volgens die gemak van die ontwikkelaar
Ondersteun enige blaaier, insluitend koplose chroombiblioteek
Ondersteun voorwerp bespot om buigsame backend toetse uit te voer
Jasmine is 'n mimicker van gebruikersgedrag waarmee u toetsgevalle soortgelyk aan gebruikersgedrag op u webwerf kan uitvoer. Jasmine is nuttig vir 'n toetsfront vir sigbaarheid, kliekhelderheid asook die reaksie van die UI in verskillende resolusies. Jasmine stel dit in staat om gebruikersgedrag te outomatiseer met vertragings in die gewoonte en die wagtyd om werklike gebruikersgedrag te simuleer.
Die belangrikste voordele verbonde aan die gebruik van Jasmine is:
Laer bokoste weens byna nul eksterne afhanklikhede
Word byna elke benodigde instrument buite die kassie gebring
Ondersteun frontend- sowel as backend-toetse
Die kodering is baie soortgelyk aan skryf in natuurlike taal
Uitgebreide dokumentasie om dit met verskillende raamwerke te gebruik
Kyk na hierdie briljante eenheidstoetsing met Jasmine aanlynkursus.
Dit laat u byna volledige beheer oor wat u doen. Dit is hoofsaaklik gefokus op die uitvoer van toetse vir NodeJS-gebaseerde kode. Van die voordele is:
Ligte voetspoor maak dit vinniger
Loop toetse asinkroon en gelyktydig
Vinniger as die meeste ander toetsraamwerke
Skoner stapel spore vir moontlike foute wat opgespoor word
grap is een van die gewildste kaders wat gereeld deur Facebook onderhou word. Dit is 'n voorkeurraamwerk vir die reaksie-gebaseerde toepassings, aangesien dit geen konfigurasie nodig het nie.
Dit is egter nie beperk tot die gebruik met React nie. Sommige van die JEST-kenmerke is:
Enkel raamwerk geskik vir NodeJS, VueJS, React, Angular en ander Babel-gebaseerde projekte
Makliker om van die grond af te kom
Goed dokumentasie en standaard sintaksis vir kodering
Met Live-foto's kan dit toetse met groter voorwerpe bestuur
karma is 'n produktiewe toetsomgewing wat al die gewilde raamwerk vir toetsbeskrywing binne homself ondersteun. Dit bied u aansoek die ondersteuning om toetse in verskillende omgewings uit te voer. Dit bied 'n wye ondersteuning vir die uitvoering van toetse op verskillende toestelle en toepassings.
Die primêre faktor om Karma te kies, lê in sy ondersteuning om met CI / CD-enjins en die volgende funksies te integreer.
Kan gebruik word om toetse op blaaiers, koplose omgewings soos PhantomJS en op toestelle uit te voer
Ondersteun toetse wat in die meeste gewilde raamwerke geskryf is
Laat toetse op 'n afstand op ander toestelle uitgevoer word deur net lêers te kom
Ondersteun foutopsporing deur gebruik van Chrome sowel as webstorm
band is baie gelyk aan AVA in sy argitektuur. Dit ondersteun nie wêreldwyd nie, en daarom moet u Tape by elke toetslêer insluit. Hierdie besluit om die verspreiding van veranderlikes te beperk, hou ook voordele in. Sommige van die funksies beklemtoon:
Maak liggewig voetspoor skoon
Verskaf slegs kaal-metaal kode en gee die ontwikkelaar volledige vryheid om toetssake te skryf
Ondersteun die standaarde van ES6, Typescript en koffieskrip
Ondersteun die uitvoering van die toets op die meeste moderne blaaiers
Cypress is 'n opwindende toetsraamwerk wat prakties op die blaaier loop. Dit bied 'n interaktiewe UI op die blaaier in die vorm van 'n webblad. Dit kan maklik op Mac, Windows sowel as Linux geïnstalleer word. Dit is 'n onafhanklike toetsloper wat nie noukeurig met u kode hoef te integreer nie.
poppespeler is 'n uitstekende toetsuitvoeringsraamwerk wat deur 'n span by Google gebou is. Dit bied 'n koplose chroom-API vir NodeJS-toepassings.
Puppeteer word hoofsaaklik gebruik vir toepassings wat spesifiek op die blaaier gekyk is, soos kruiptoets, bladsystruktuurtoets, skermkiekies neem en selfs vooraf weergegee inhoud vir enkele bladsy-toepassings vaslê. Bykomende voordele van die gebruik van marionet is:
Die vermoë om persoonlike resolusies en groottes vir die blaaier in te stel
Ondersteuning om chroom-uitbreidings te toets
Outomatiseringsteun vir die indiening van vorms, UI-toetsing en sleutelbordinsette
Ondersteun ES6-funksies soos wag en asynchroniseer
ChaiJS werk met Node, blaaier, spoor en het groot ondersteuningsgemeenskap en dokumentasie gekry.
Qunit – 'n kragtige toetsraamwerk wat gewy word aan die gebruik van 'n frontend. Dit is die eerste keuse deur ontwikkelaars van die UQ-biblioteke JQuery, JQuery Mobile en JQuery.
Dit kan as 'n onafhanklike JS-lêer geskryf word en op enige webblad uitgevoer word. Die standaardmetode om Qunit te toets is om die lêer op die webblad in te sluit en toetse uit te voer met behulp van Qunit-inprop. Die voordele van QUnit sluit in:
Kan gebruik word om herbruikbare toetsskrifte te bou
Bied 'n web-koppelvlak wat gereed is om te ontplooi vir die visuele uitsigte van toetsuitsette
'N Pool van plugins wat daarop gebou is, maak dit moontlik om vinniger te ontwikkel
Sinon.js komplimenteer die eenheidstoetsraamwerk om die regte dinge te vervals / bespot. Omdat u tydens die toetsing nie al die data het nie! Dit ondersteun Chrome, IE 11, Firefox, Edge, Safari en Node.js se tye.
'N Goeie alternatief vir Sinon sou wees testdouble.js
Eenheidstoetsing is noodsaaklik om te verseker dat kodeverandering nie die toepassing verbreek nie, en dit werk volgens die onderneming se vereistes. En ek hoop dat bogenoemde u hiermee kan help. As u 'n newbie is, sal u dit dalk goed vind aanlyn kursus wat jou leer om JS-eenheidstoetse te doen met ChaiJS, Sinon en Mokka.