Peržiūrėkite šiuos geriausius savo klasėje paketus, kad gautumėte geriausias „Node“ siūlomas testavimo funkcijas.
Testavimas yra svarbi bet kokio programinės įrangos kūrimo proceso dalis, nes prieš išsiunčiant kodą nustatomos problemos ir saugos spragos.
Node.js ekosistema siūlo įvairius testavimo paketus, padedančius užtikrinti programų patikimumą, kokybę ir našumą. Čia išnagrinėsite keturis populiariausius Node.js ekosistemos testavimo paketus.
„Jest“ yra testavimo sistema, kuri suteikia lengvai naudojamą ir išsamų „JavaScript“ kodų bazių testavimo sprendimą. „Meta“ sukurtas „Jest“ siūlo tokias funkcijas kaip lygiagretus testo vykdymas, kodo aprėptis, įmontuota tvirtinimų, pašaipių ir momentinių nuotraukų testavimo atitikmenys, todėl tai yra galingas ir universalus testavimas sistema.
Galite įdiegti „Jest“ vykdydami toliau pateiktą komandą:
npm install --save-dev jest
Štai pavyzdys, rodantis bandymas su Jest funkcijai, kuri tikrina, ar skaičius yra nelyginis:
apibūdinti("yra keista", () => {
testas („Grąžina tiesa, kai įvedamas nelyginis skaičius“, () => {
tikėtis (isOdd(3)).būti(tiesa);
});testas („Grąžina false lyginiam skaičiui“, () => {
tikėtis (isOdd(2)).būti(klaidinga);
});testas („įvedant ne sveikąjį skaičių pateikiama klaida“, () => {
tikėtis (() => {
isOdd(3.5);
}).mesti("Įvestis nėra sveikasis skaičius");
});
testas („įvedant ne skaitinę įvestą klaidą“, () => {
tikėtis (() => {
isOdd("3");
}).mesti("Įvestis nėra skaičius");
});
});
Kai paleisite aukščiau pateiktą testų rinkinį, „Jest“ atliks kiekvieną atskirą testą ir palygins funkcijos išvestį su numatoma reikšme naudodami tikėtis funkcija ir būti ir mesti atitikmenys. Jei išvestis nėra tokia, kokios tikėtasi, „Jest“ praneša apie nepavykusį testą ir pateikia išsamų klaidos pranešimą.
„Jest“ taip pat turi įmontuotą palaikymą, skirtą juokingų funkcijų įgyvendinimui. Be to, ji turi didelę aktyvią bendruomenę su reguliariais atnaujinimais ir patobulinimais.
„Mocha“ yra „JavaScript“ testavimo sistema, kuri suteikia lankstų ir išplečiamą sprendimą rašant „JavaScript“ programų testus. Ji siūlo paprastą ir minimalistinę sintaksę testams apibrėžti.
Jis palaiko kelias tvirtinimo bibliotekas, pvz., Node.js integruotą tvirtinti modulis, Chai ir Should.js, be kita ko. Dėl šio kelių tvirtinimo bibliotekų palaikymo „Mocha“ yra idealus pasirinkimas, jei norite lankstesnės testavimo sąrankos.
Galite įdiegti „Mocha“ vykdydami toliau pateiktą komandą:
npm įdiegti mocha
Štai pavyzdys, rodantis testavimą su Mocha ir Node.js tvirtinti funkcijos modulis, kuris grąžina dviejų skaičių sumą:
konst tvirtinti = reikalauti('teigti');
apibūdinti('addNumbers', funkcija() {
tai („Pridėti du teigiamus skaičius“, funkcija() {
konst rezultatas = addNumbers(3, 5);
assert.strictEqual (rezultatas, 8);
});
tai („Pridėti teigiamą ir neigiamą skaičių“, funkcija() {
konst rezultatas = addNumbers(3, -5);
assert.strictEqual (rezultatas, -2);
});
});
Kai vykdote aukščiau pateiktą testą, Mocha atlieka kiekvieną atskirą testą tai blokai. Kiekvienam testui Mocha vykdo kodą testavimo funkcijoje, kuri iškviečia pridėti numeriai funkcija su konkrečiomis įvesties reikšmėmis ir tada naudoja tvirtinti modulį, kad palygintumėte tikrąją funkcijos išvestį su numatoma išvestimi. Jei bandymas nepavyksta, Mocha praneša apie rezultatą kaip nesėkmingą ir pateikia informaciją apie numatomas ir faktines išvesties vertes.
Vienas iš pagrindinių Mocha pranašumų yra jos lankstumas, nes jis leidžia pasirinkti savo tvirtinimo bibliotekas, reporterius ir kitą konfigūraciją pagal savo poreikius. Tačiau „Mocha“ reikalauja papildomos sąrankos tokioms funkcijoms kaip pasityčiojimas ir momentinių nuotraukų testavimas, nes jos neįtraukiamos. Palyginti su „Jest“, „Mocha“ gali prireikti daugiau konfigūracijos ir sąrankos, kad būtų pasiektos panašios funkcijos.
Ava yra „JavaScript“ testavimo sistema, kurioje pagrindinis dėmesys skiriamas našumui ir lygiagretumui. Jis skirtas vykdyti bandymus vienu metu, o tai leidžia greičiau atlikti bandymus. „Ava“ taip pat yra su integruota testavimo programa ir tvirtinimo biblioteka, todėl tai yra savarankiškas sprendimas „JavaScript“ programoms išbandyti.
Galite įdiegti „Ava“ vykdydami toliau pateiktą komandą:
npm įdiegti --save-dev ava
Štai pavyzdys, rodantis funkcijos, kuri grąžina dviejų skaičių sumą, testavimą su Ava:
importuoti bandymas iš'ava';
testas („addNumbers prideda du teigiamus skaičius“, t => {
konst rezultatas = addNumbers(3, 5);
t.is (rezultatas, 8);
});
testas („addNumbers prideda teigiamą ir neigiamą skaičių“, t => {
konst rezultatas = addNumbers(3, -5);
t.is (rezultatas, -2);
});
Kai atliksite šiuos testus naudodami Ava, jis atliks kiekvieną testą ir praneš apie rezultatus konsolei. Jei visi testai bus sėkmingi, Ava praneš, kad visi testai buvo išlaikyti. Jei bandymai nepavyksta, Ava praneš, kurie bandymai nepavyko, ir pateiks informaciją apie numatomas ir faktines išvesties vertes.
Kai kurie „Ava“ pranašumai apima dėmesį našumui ir lygiagretumui, leidžiančius greičiau atlikti bandymus, ypač projektuose, kuriuose yra daug testų. Tačiau „Ava“ gali turėti staigesnę mokymosi kreivę kūrėjams, kurie naujokai naudoja šiuolaikinę „JavaScript“ sintaksę, nes ji naudoja ES moduliai ir kitos modernios „JavaScript“ funkcijos.
„Jasmine“ yra elgesiu pagrįstos plėtros (BDD) testavimo sistema, skirta „JavaScript“ programoms. Tai suteikia aiškią ir išraiškingą sintaksę testams, kurie labai primena natūralią kalbą, todėl lengva suprasti ir rašyti testus tiek techniniams, tiek netechniniams žmonėms. „Jasmine“ taip pat yra su integruota testavimo programa ir tvirtinimo biblioteka, todėl tai yra išsamus sprendimas „JavaScript“ programoms išbandyti.
Galite įdiegti „Jasmine“ vykdydami šią komandą:
npm install --save-dev jasmine
Tada turite inicijuoti Jasmine savo darbo kataloge vykdydami toliau pateiktą komandą:
jazminų init
Aukščiau pateikta komanda generuoja a parama aplanką savo spec (Testai) aplanką. Šiame aplanke yra jasmine.json failą, kuriame yra „Jasmine“ konfigūracijos parametras.
Štai pavyzdys, rodantis funkcijos, kuri tikrina, ar skaičius yra lyginis, testavimą su Jasmine:
apibūdinti('yra net', funkcija() {
tai („Grąžinti teisingą lyginiam skaičiui“, funkcija() {
konst rezultatas = yraEven(4);
tikėtis (rezultato).toBe(tiesa);
});
tai („Return false for nelyginis skaičius“, funkcija() {
konst rezultatas = yraEven(5);
tikėtis (rezultato).toBe(klaidinga);
});
});
Kai atliksite aukščiau nurodytus testus naudodami Jasmine, Jasmine atliks kiekvieną testą ir praneš apie rezultatus konsolei. Jei visi testai bus sėkmingi, Jasmine praneš, kad visi testai buvo išlaikyti. Jei kuris nors testas nepavyks, Jasmine praneš, kurie testai nepavyko, ir pateiks informaciją apie numatomas ir faktines išvesties vertes.
Kai kurie „Jasmine“ pranašumai apima jo BDD sintaksę, kuri daro testus lengviau suprantamus žmonėms ir padeda pagerinti techninių ir netechninių komandos narių bendravimą. Tačiau Jasmine gali turėti staigesnę mokymosi kreivę kūrėjams, kuriems BDD koncepcijos nėra naujos. Tačiau verta paminėti, kad, palyginti su kitomis testavimo sistemomis, „Jasmine“ sąrankai reikia daug konfigūracijos.
Testavimo sistemos pasirinkimas
Norint pasirinkti Node.js projekto testavimo sistemą, reikia atidžiai apsvarstyti keletą veiksnių, įskaitant testavimo metodą, naudojimo paprastumą, bendruomenės palaikymą, integravimą su kitais įrankiais ir spektaklis. Tačiau galiausiai pasirinkimas priklauso nuo jūsų projekto, nes kai kurie paketai labiau tinka konkretiems projektams nei kiti.