Oglejte si te najboljše pakete v svojem razredu, da dobite najboljšo funkcionalnost testiranja, ki jo ponuja Node.

Testiranje je pomemben del vsakega procesa razvoja programske opreme, saj identificira težave in varnostne ranljivosti vaše kode, preden jo pošljete.

Ekosistem Node.js ponuja različne testne pakete, ki vam pomagajo zagotoviti zanesljivost, kakovost in zmogljivost vaših aplikacij. Tukaj boste raziskali štiri najboljše testne pakete v ekosistemu Node.js.

Jest je ogrodje za testiranje, ki ponuja preprosto in celovito rešitev za testiranje kodnih baz JavaScript. Jest, ki ga je razvila Meta, ponuja funkcije, kot so vzporedno izvajanje testov, pokritost kode, vgrajen ujemalci za trditve, norčevanje in testiranje posnetkov, zaradi česar je zmogljivo in vsestransko testiranje ogrodje.

Jest lahko namestite tako, da zaženete spodnji ukaz:

npm install --save-dev jest

Tukaj je primer, ki prikazuje testiranje z Jestom za funkcijo, ki preverja, ali je število liho:

opisati ("je čudno", () => {
test(
instagram viewer
"vrne true za vnos lihih številk", () => {
pričakuj (je Liho(3)).biti(prav);
});

test("vrne false za sodo število", () => {
pričakuj (je Liho(2)).biti(lažno);
});

test("vrže napako za vnos, ki ni celo število", () => {
pričakovati(() => {
je čudno(3.5);
}).vreči("Vnos ni celo število");
});

test("vrže napako za neštevilski vnos", () => {
pričakovati(() => {
je čudno("3");
}).vreči("Vnos ni številka");
});
});

Ko zaženete zgornji testni paket, bo Jest izvedel vsak posamezen test in primerjal izhod funkcije s pričakovano vrednostjo z uporabo pričakovati funkcijo in biti in vreči ujemalci. Če rezultat ni tak, kot je bilo pričakovano, Jest poroča o neuspelem preizkusu in poda podrobno sporočilo o napaki.

Jest ima tudi vgrajeno podporo za posmehljive implementacije funkcij. Poleg tega ima veliko aktivno skupnost z rednimi posodobitvami in izboljšavami.

Mocha je ogrodje za testiranje JavaScripta, ki ponuja prilagodljivo in razširljivo rešitev za pisanje testov za aplikacije JavaScript. Ponuja preprosto in minimalistično sintakso za definiranje testov.

Podpira več knjižnic trditev, kot je vgrajena Node.js trditi modul, Chai in Should.js, med drugim. Zaradi te podpore za več knjižnic trditev je Mocha idealna izbira, če imate raje prilagodljivost v nastavitvah testiranja.

Mocha lahko namestite tako, da zaženete spodnji ukaz:

npm namestite mokko

Tukaj je primer, ki prikazuje testiranje z Mocha in Node.js trditi modul za funkcijo, ki vrne vsoto dveh števil:

konst trditi = zahtevati('trditi');

opisati ('addNumbers', funkcijo() {
to('Seštejte dve pozitivni števili', funkcijo() {
konst rezultat = dodajŠtevilke(3, 5);
assert.strictEqual (rezultat, 8);
});

to('Seštejte pozitivno in negativno število', funkcijo() {
konst rezultat = dodajŠtevilke(3, -5);
assert.strictEqual (rezultat, -2);
});
});

Ko izvedete zgornji test, Mocha izvede vsak posamezen test znotraj to bloki. Za vsak preizkus Mocha izvede kodo v testni funkciji, ki pokliče addNumbers funkcijo z določenimi vhodnimi vrednostmi in nato uporabi trditi modul za primerjavo dejanskega izhoda funkcije s pričakovanim izhodom. Če test ne uspe, Mocha sporoči rezultat kot neuspeh in zagotovi informacije o pričakovanih in dejanskih izhodnih vrednostih.

Ena od glavnih prednosti Mocha je njegova prilagodljivost, saj vam omogoča, da izberete lastne knjižnice trditev, poročevalce in drugo konfiguracijo glede na vaše potrebe. Vendar pa Mocha zahteva dodatno nastavitev za funkcije, kot sta zasmehovanje in testiranje posnetkov, saj jih ne vključuje takoj. V primerjavi z Jestom bo Mocha morda zahteval več konfiguracije in nastavitev za doseganje podobnih funkcij.

Ava je ogrodje za testiranje JavaScripta, ki se osredotoča na zmogljivost in sočasnost. Zasnovan je za sočasno izvajanje testov, kar omogoča hitrejše čase izvajanja testov. Ava ima tudi vgrajen preskusni izvajalec in knjižnico trditev, zaradi česar je samostojna rešitev za testiranje aplikacij JavaScript.

Avo lahko namestite tako, da zaženete spodnji ukaz:

npm install --save-dev ava

Tukaj je primer, ki prikazuje testiranje z Avo za funkcijo, ki vrne vsoto dveh števil:

uvoz test od'ava';

test('addNumbers sešteje dve pozitivni števili', t => {
konst rezultat = dodajŠtevilke(3, 5);
t.is (rezultat, 8);
});

test('addNumbers sešteje pozitivno in negativno število', t => {
konst rezultat = dodajŠtevilke(3, -5);
t.is (rezultat, -2);
});

Ko zaženete te teste z uporabo programa Ava, bo ta izvedel vsak test in rezultate sporočil konzoli. Če so vsi testi uspešni, bo Ava sporočila, da so bili vsi testi uspešni. Če kateri koli test ne uspe, bo Ava poročala, kateri testi so bili neuspešni, in podala informacije o pričakovanih in dejanskih izhodnih vrednostih.

Nekatere prednosti Ave vključujejo njeno osredotočenost na zmogljivost in sočasnost, kar omogoča hitrejše čase izvajanja testov, zlasti pri projektih z velikim številom testov. Vendar ima lahko Ava bolj strmo krivuljo učenja za razvijalce, ki so novi v sodobni sintaksi JavaScripta, saj uporablja ES moduli in druge sodobne funkcije JavaScript.

Jasmine je razvojno ogrodje za testiranje, ki temelji na vedenju (BDD) za aplikacije JavaScript. Zagotavlja čisto in ekspresivno sintakso za pisanje testov, ki je zelo podobna naravnemu jeziku, kar olajša razumevanje in pisanje testov tako tehničnim kot netehničnim ljudem. Jasmine ima tudi vgrajen preizkusni izvajalec in knjižnico trditev, zaradi česar je celovita rešitev za testiranje aplikacij JavaScript.

Jasmine lahko namestite tako, da zaženete ta ukaz:

npm install --save-dev jasmine

Nato morate inicializirati Jasmine v vašem delovnem imeniku, tako da zaženete spodnji ukaz:

jasmin init

Zgornji ukaz ustvari a podporo mapo v vašem spec (Testi). Ta mapa vsebuje jasmine.json ki vsebuje konfiguracijske nastavitve za Jasmine.

Tukaj je primer, ki prikazuje testiranje z Jasmine za funkcijo, ki preverja, ali je število sodo:

opisati ('isEven', funkcijo() {
to('Vrni resnico za sodo število', funkcijo() {
konst rezultat = jeEven(4);
pričakuj (rezultat).toBe(prav);
});

to('Vrni false za liho število', funkcijo() {
konst rezultat = jeEven(5);
pričakuj (rezultat).toBe(lažno);
});
});

Ko izvajate zgornje teste z uporabo Jasmine, bo Jasmine izvedel vsak test in rezultate sporočil konzoli. Če so vsi testi uspešni, bo Jasmine sporočila, da so vsi testi uspešni. Če kateri koli test ne uspe, bo Jasmine poročala, kateri testi so bili neuspešni, in zagotovila informacije o pričakovanih in dejanskih izhodnih vrednostih.

Nekatere od prednosti Jasmine vključujejo njegovo sintakso BDD, zaradi katere so testi bolj berljivi za ljudi in pomaga izboljšati komunikacijo med tehničnimi in netehničnimi člani ekipe. Vendar pa ima Jasmine morda bolj strmo krivuljo učenja za razvijalce, ki so novi v konceptih BDD. Vendar je treba omeniti, da Jasmine v primerjavi z drugimi testnimi okviri zahteva veliko konfiguracije za nastavitev.

Izbira ogrodja za testiranje

Izbira testnega ogrodja za projekt Node.js zahteva natančno preučitev več dejavnikov, vključno s pristopom testiranja, enostavnostjo uporabe, podporo skupnosti, integracijo z drugimi orodji in izvedba. Toda navsezadnje je izbira odvisna od vašega projekta, saj so nekateri paketi bolj primerni za določene projekte kot drugi.