Vaadake neid oma klassi parimaid pakette, et saada parimat testimisfunktsiooni, mida Node pakub.

Testimine on iga tarkvara arendusprotsessi oluline osa, kuna see tuvastab teie koodiga seotud probleemid ja turvaaukud enne selle saatmist.

Node.js ökosüsteem pakub mitmesuguseid testimispakette, mis aitavad teil tagada oma rakenduste töökindluse, kvaliteedi ja jõudluse. Siin saate uurida Node.js ökosüsteemi nelja parimat testimispaketti.

Jest on testimisraamistik, mis pakub JavaScripti koodibaaside jaoks hõlpsasti kasutatavat ja kõikehõlmavat testimislahendust. Meta välja töötatud Jest pakub selliseid funktsioone nagu paralleelne testimine, koodi katvus, sisseehitatud sobitajad väidete, pilkamiste ja hetktõmmiste testimiseks, muutes selle võimsaks ja mitmekülgseks testimiseks raamistik.

Jesti saate installida, käivitades alloleva käsu:

npm install --save-dev jest

Siin on näide, mis demonstreerib testimine Jestiga funktsiooni jaoks, mis kontrollib, kas arv on paaritu:

kirjelda ("on Odd", () => {
test( "tagastab paaritu numbri sisestamisel tõene", () => {
oodata (isOdd(3)).olla(tõsi);
});

test("tagastab paarisarvu puhul vale", () => {
oodata (isOdd(2)).olla(vale);
});

test("viskab mittetäisarvude sisestamisel vea", () => {
ootama (() => {
on Odd(3.5);
}).Viskama("Sisend ei ole täisarv");
});

test("viskab mittenumbrilise sisestuse korral vea", () => {
ootama (() => {
on Odd("3");
}).Viskama("Sisend ei ole arv");
});
});

Kui käivitate ülaltoodud testkomplekti, käivitab Jest iga üksiku testi ja võrdleb funktsiooni väljundit eeldatava väärtusega, kasutades oodata funktsioon ja olla ja Viskama sobitajad. Kui väljund ei vasta ootustele, teatab Jest ebaõnnestunud testist ja annab üksikasjaliku veateate.

Jestil on ka sisseehitatud tugi funktsioonide pilkamiseks. Lisaks on sellel suur aktiivne kogukond koos regulaarsete värskenduste ja täiustustega.

Mocha on JavaScripti testimise raamistik, mis pakub paindlikku ja laiendatavat lahendust JavaScripti rakenduste testide kirjutamiseks. See pakub testide määratlemiseks lihtsat ja minimalistlikku süntaksit.

See toetab mitut kinnitusteeki, näiteks Node.js'i sisseehitatud väita moodul, Chai ja Should.js. See mitme väiteteegi tugi muudab Mocha ideaalseks valikuks, kui eelistate testimise seadistuses paindlikkust.

Mocha saate installida, käivitades alloleva käsu:

npm install mocha

Siin on näide Mocha ja Node.js-iga testimise kohta väita moodul funktsiooni jaoks, mis tagastab kahe arvu summa:

konst väita = nõuda('väidavad');

kirjelda ('addNumbers', funktsiooni() {
see ("Lisa kaks positiivset arvu", funktsiooni() {
konst tulemus = addNumbers(3, 5);
assert.strictEqual (tulemus, 8);
});

see ("Lisa positiivne ja negatiivne arv", funktsiooni() {
konst tulemus = addNumbers(3, -5);
assert.strictEqual (tulemus, -2);
});
});

Kui käivitate ülaltoodud testi, käivitab Mocha iga üksiku testi seda plokid. Iga testi jaoks käivitab Mocha testifunktsioonis koodi, mis kutsub esile lisanumbreid funktsiooni konkreetsete sisendväärtustega ja seejärel kasutab väita moodul funktsiooni tegeliku väljundi võrdlemiseks eeldatava väljundiga. Kui test ebaõnnestub, teatab Mocha tulemusest ebaõnnestumisest ja annab teavet eeldatavate ja tegelike väljundväärtuste kohta.

Mocha üks peamisi eeliseid on selle paindlikkus, kuna see võimaldab teil vastavalt oma vajadustele valida oma väidete teegid, reporterid ja muud konfiguratsioonid. Mocha nõuab aga täiendavat seadistamist selliste funktsioonide jaoks nagu pilkamine ja hetktõmmiste testimine, kuna see ei sisalda neid karbist välja. Võrreldes Jestiga võib Mocha sarnaste funktsioonide saavutamiseks vajada rohkem konfigureerimist ja seadistamist.

Ava on JavaScripti testimise raamistik, mis keskendub jõudlusele ja samaaegsusele. See on loodud testide samaaegseks käitamiseks, mis võimaldab kiiremat testi täitmise aega. Ava on varustatud ka sisseehitatud testimisprogrammi ja kinnitusteekiga, muutes selle iseseisvaks lahenduseks JavaScripti rakenduste testimiseks.

Ava saate installida, käivitades alloleva käsu:

npm install --save-dev ava

Siin on näide, mis demonstreerib kahe arvu summa tagastava funktsiooni testimist Avaga:

importida test alates'ava';

test("addNumbers lisab kaks positiivset arvu", t => {
konst tulemus = addNumbers(3, 5);
t.is (tulemus, 8);
});

test("addNumbers lisab positiivse ja negatiivse arvu", t => {
konst tulemus = addNumbers(3, -5);
t.is (tulemus, -2);
});

Kui käivitate need testid Ava abil, käivitab see iga testi ja edastab tulemused konsoolile. Kui kõik testid läbivad, teatab Ava, et kõik testid on läbitud. Kui mõni test ebaõnnestub, teatab Ava, millised testid ebaõnnestusid, ning annab teavet eeldatavate ja tegelike väljundväärtuste kohta.

Mõned Ava plussid hõlmavad keskendumist jõudlusele ja samaaegsusele, mis võimaldab kiiremat testimise aega, eriti suure hulga testidega projektides. Siiski võib Ava õppimiskõver olla järsem nende arendajate jaoks, kes pole kaasaegses JavaScripti süntaksis uued, kuna see kasutab ES moodulid ja muud kaasaegsed JavaScripti funktsioonid.

Jasmine on käitumispõhise arenduse (BDD) testimise raamistik JavaScripti rakenduste jaoks. See annab puhta ja väljendusrikka süntaksi testide kirjutamiseks, mis sarnanevad väga loomulikule keelele, muutes testide mõistmise ja kirjutamise lihtsaks nii tehnilistele kui ka mittetehnilistele inimestele. Jasmine on varustatud ka sisseehitatud testimisprogrammi ja kinnitusteekiga, muutes selle kõikehõlmavaks lahenduseks JavaScripti rakenduste testimiseks.

Jasmine'i saate installida, käivitades selle käsu:

npm install --save-dev jasmine

Seejärel peate oma töökataloogis initsialiseerima Jasmine, käivitades alloleva käsu:

jasmiini init

Ülaltoodud käsk genereerib a toetus teie kaustas spec (Testid) kausta. Selles kaustas on jasmine.json faili, mis sisaldab Jasmine'i konfiguratsioonisätteid.

Siin on näide, mis demonstreerib Jasmine testimist funktsiooni jaoks, mis kontrollib, kas arv on paaris:

kirjelda ('on isegi', funktsiooni() {
see ('Tagasi paarisarvu puhul tõene', funktsiooni() {
konst tulemus = isEven(4);
oodata (tulemus).toBe(tõsi);
});

see ("Return false paaritu numbri korral", funktsiooni() {
konst tulemus = isEven(5);
oodata (tulemus).toBe(vale);
});
});

Kui käivitate ülaltoodud testid Jasmine'i abil, teostab Jasmine iga testi ja edastab tulemused konsoolile. Kui kõik testid läbivad, teatab Jasmine, et kõik testid on läbitud. Kui mõni test ebaõnnestub, teatab Jasmine, millised testid ebaõnnestusid, ning annab teavet eeldatavate ja tegelike väljundväärtuste kohta.

Mõned Jasmine plussid hõlmavad selle BDD süntaksit, mis muudab testid inimloetavamaks ja aitab parandada suhtlust tehniliste ja mittetehniliste meeskonnaliikmete vahel. Kuid Jasmine võib olla järsem õppimiskõver arendajatele, kes on BDD kontseptsioonidega uued. Siiski väärib märkimist, et võrreldes teiste testimisraamistikega nõuab Jasmine seadistamiseks palju konfigureerimist.

Testimisraamistiku valimine

Node.js projekti testimisraamistiku valimine nõuab mitme teguri hoolikat kaalumist, sealhulgas testimisviis, kasutuslihtsus, kogukonna tugi, integreerimine muude tööriistadega ja esitus. Kuid lõppkokkuvõttes sõltub valik teie projektist, kuna mõned paketid sobivad konkreetsete projektide jaoks paremini kui teised.