Lumea JavaScript oferă o mulțime de opțiuni pentru … ei bine, pentru aproape orice. Astăzi ne vom concentra pe instrumentele de testare, răspunzând la întrebarea „Care este cel mai bun framework JavaScript?”

Vom trece în revistă cinci dintre cele mai populare framework-uri de testare JavaScript și, până la sfârșitul articolului, îl vom alege pe cel pe care îl considerăm cel mai bun. Să începem.

Ce sunt cadrele de testare?

Înainte de a ne scufunda în lista noastră de cadre, este important să înțelegem ce este un cadru de testare.

Pus simplu, un cadru de testare este un instrument – sau un set de instrumente – care vă ajută să efectuați teste unitare. Un cadru de testare ar trebui să vă ofere cel puțin

  • Reguli sau convenții pentru a scrie cazuri de testare și a le organiza în suite de testare.
  • Metode pentru a executa automat și a autoclasifica testele.
  • Rezultatele testelor care sunt afișate și formatate.

Cinci cadre de testare JavaScript care merită verificate

Până acum ar trebui să aveți o înțelegere fermă a ceea ce sunt cadrele de testare și de ce avem nevoie de ele. Acestea fiind eliminate, este timpul să abordăm lista noastră de instrumente, începând cu Mocha.

Mocha

Mocha, uneori numit și MochaJS, este un cadru de testare care rulează atât în Node.js, cât și în browser. A fost lansat în 2011 și de atunci a fost unul dintre cele mai populare cadre de testare pentru lumea JavaScript. Cu toate acestea, conform raportului State of JavaScript, popularitatea lui Mocha a fost în scădere în ultimii ani, chiar dacă este în continuare, fără îndoială, cel mai utilizat și cunoscut dintre instrumente.

Acest cadru simplifică testarea asincronă prin rularea în serie a testelor. Acest lucru permite o raportare precisă și, în același timp, maparea excepțiilor necapturate la cazurile de testare corecte. Cadrul Mocha are o configurație extrem de flexibilă. Aceasta vă permite să îl asociați cu bibliotecile de care aveți nevoie în mod special pentru funcționalități cum ar fi aserțiunile, mocking și așa mai departe.

Dezavantajul unei astfel de flexibilități este că Mocha necesită mai multă muncă pentru configurarea sa inițială. De asemenea, în timp ce alte framework-uri vin deja cu funcționalități de aserțiuni și mocking, Mocha necesită instrumente suplimentare pentru asta.

Site oficial: mochajs.org
Repozitoriu: github.com/mochajs/mocha

Puppeteer

Puppeteer este o bibliotecă Node.js care permite utilizatorilor să controleze un browser Chrome sau Chromium fără cap. În acest fel, este posibil să automatizați teste pe care le-ați efectua de obicei manual folosind un browser obișnuit. Pagina proiectului enumeră câteva exemple de teste pe care le puteți efectua:

  • Generați capturi de ecran și PDF-uri ale paginilor.
  • Căutați o SPA (aplicație cu o singură pagină) și generați conținut pre-redimensionat (adică „SSR” ).
  • Automatizați trimiterea de formulare, testarea interfeței cu utilizatorul, introducerea de date de la tastatură etc.
  • Creați un mediu de testare actualizat și automatizat. Rulați-vă testele direct în cea mai recentă versiune de Chrome folosind cele mai recente caracteristici JavaScript și ale browserului.
  • Capturați o urmă cronologică a site-ului dvs. pentru a ajuta la diagnosticarea problemelor de performanță.
  • Testați extensiile Chrome.
  • Testim a lansat un înregistrator gratuit pentru Puppeteer. Verificați-l și folosiți-l ori de câte ori doriți.

Site oficial: developers.google.com/web/tools/puppeteer
Repository: github.com/puppeteer/puppeteer

Jasmine

Jasmine este un cadru de testare JavaScript BDD (behavior-driven development).

Acest cadru vine deja cu aproape tot ce aveți nevoie pentru a începe testarea. Are aserțiuni încorporate și teste duble cu spioni, spre deosebire de, să zicem, Mocha, care vă cere să instalați instrumente terțe pentru aceste funcționalități.

Cu toate acestea, Jasmine este, de asemenea, flexibil și se poate integra perfect cu un număr mare de instrumente de testare suplimentare. Puteți folosi cu ușurință Karma ca test runner sau puteți angaja Sinon.JS pentru nevoile dumneavoastră de mocking.

Site-ul oficial: Jasmine.github.io/
Repository: github.com/jasmine/jasmine

QUnit

QUnit a fost inițial parte a bibliotecii de programare jQuery. John Resig a creat-o pentru a testa jQuery, jQuery UI și jQuery Mobile. În 2008, QUnit a fost extras din baza de cod jQuery și a fost lansat ca un cadru de sine stătător, dar ar necesita în continuare jQuery pentru a funcționa. În 2009, au rezolvat acest lucru printr-o rescriere, făcând QUnit în sfârșit independent de jQuery.

În ciuda faptului că inițial a vizat jQuery, QUnit este în prezent un cadru generic care poate testa orice cod JavaScript, suportând atât mediile de tip client, cât și cele de tip server.

Vă puteți gândi la QUnit ca fiind reprezentantul JavaScript în familia xUnit a cadrelor de testare a unităților. Are o configurare rapidă și ușoară. De asemenea, având în vedere că există de cel puțin 12 ani, este un instrument bine susținut.

Site-ul oficial: qunitjs.com
Repository: github.com/qunitjs/qunit

Jest

Jest este un cadru de testare pentru JavaScript care se concentrează pe simplitate. Lansat de Facebook, Jest își propune să funcționeze din start și fără a fi nevoie de nici o configurație.

Dacă aruncați o privire la pagina de „început” a lui Jest, veți vedea că îl puteți instala, scrie primul test și îl puteți rula în câteva minute, fără configurări complicate sau instalări suplimentare. Un alt avantaj al lui Jest este performanța sa impresionantă.

Jest este folosit în principal pentru testarea aplicațiilor React, dar asta nu înseamnă că sunteți restricționat să îl folosiți pentru a testa doar aplicațiile scrise cu acest framework. Dimpotrivă: îl puteți folosi și pentru a testa aplicații Node, Angular și Vue, pentru a numi doar câteva.

Site oficial: jestjs.io/
Repozitoriu: github.com/facebook/jest

Absențe notabile

S-ar putea să vă întrebați de ce unele instrumente celebre de testare JavaScript nu au ajuns în lista noastră. Poate considerați că instrumente precum Karma, Sinon și Chai, printre altele, sunt suficient de populare pentru a fi pe listă. De ce nu le-am inclus?

Pe scurt, am vrut să păstrăm lista cât mai concisă posibil. Pentru a face acest lucru, am decis să nu includem pe listă instrumente de testare care nu sunt framework-uri, strict vorbind. Așadar, acesta este motivul pentru care un instrument super popular, cum ar fi Karma, nu a fost inclus: este un test runner, nu un framework. Același raționament se aplică și în cazul Sinon (o unealtă de mocking) și Chai (o bibliotecă de aserțiuni).

Ați putea argumenta că Puppeteer nu se potrivește prea bine în listă și, într-o anumită măsură, aș fi de acord. Adică, toate celelalte instrumente sunt cadre mai potrivite pentru a efectua teste de tip test unitar, în timp ce Puppeteer este mai degrabă un instrument de automatizare a browserului. Totuși, este tot un framework de testare, în sensul că vă permite să proiectați teste automatizate care sunt ulterior rulate fără intervenție umană.

Verdict: Care este cel mai bun cadru de testare JavaScript?

Am prezentat cinci cadre de testare pentru JavaScript. Acum este momentul să ne îndeplinim promisiunea din titlul postării și să îl selectăm pe cel mai bun. Pentru a face acest lucru, vom judeca cadrele în funcție de patru criterii: costul, instalarea, ușurința de configurare și curba de învățare.

Evaluarea cadrelor

Cost

Primul criteriu este, cu siguranță, cel mai ușor de evaluat pentru noi. Toate cadrele pe care le-am abordat aici sunt proiecte open-source, astfel încât le puteți descărca și utiliza gratuit (ca la bere). Așadar, nu avem un câștigător clar aici. Să mergem mai departe.

Instalare

Instalarea tuturor instrumentelor de mai sus este destul de ușoară. La urma urmei, le puteți instala pe toate folosind npm (sau, alternativ, Yarn.) Cu toate acestea, unele dintre instrumente oferă opțiuni de instalare suplimentare.

De exemplu, pe lângă npm și Yarn, puteți instala QUnit ca o descărcare independentă. Dar acest lucru ar necesita să stocați și să gestionați acest activ. În schimb, puteți utiliza versiunea găzduită la jQuery CDN. Jasmine oferă, de asemenea, o versiune de sine stătătoare care nu depinde de Node și vă permite să rulați specificațiile folosind browserul dvs.

Acum, avem un câștigător aici? Noi credem că da. Dacă ar fi să alegem doar pe baza ușurinței de instalare, am avea o altă tragere la sorți. Dar, după cum am văzut, atât QUnit, cât și Jasmine oferă mai multe opțiuni, deoarece le puteți utiliza ca biblioteci independente. Este utilă această flexibilitate suplimentară? Kilometrajul dvs. poate varia în această privință, dar pentru noi, QUnit și Jasmine sunt câștigătorii aici.

Câștigătorii: QUnit și Jasmine

Facilitatea de configurare

Acum, să ne uităm la ușurința de configurare. Când vine vorba de configurarea inițială, avem un câștigător clar aici: Jest. Cadrul promite o utilizare zero-configurare și își respectă această promisiune. Sigur, vă permite să faceți configurații opționale, dar este uimitor să instalați un cadru de testare și să aveți un test real care rulează în aproximativ două minute, fără nici o configurare sau instalare de instrumente suplimentare.

Câștigător: Jest

Curba de învățare

În sfârșit, curba de învățare. Va trebui să alegem din nou Jest aici. Deoarece vine cu o API largă și nu necesită atât de multe instrumente de la terți ca celelalte framework-uri, Jest prezintă în mod inevitabil o curbă de învățare mai puțin abruptă.

Vingător: Jest: Jest

Iată câștigătorul

După ce am acoperit cinci cadre de testare JavaScript și apoi le-am analizat folosind patru criterii, este timpul să alegem un câștigător.

Așa că, din moment ce a fost câștigător în două dintre cele patru criterii pe care le-am folosit, vom alege Jest ca fiind câștigătorul nostru. Asta nu înseamnă că nu ar trebui să nu încercați celelalte instrumente. Dimpotrivă: experimentați și exersați cât de mult puteți, deoarece acesta este cel mai bun mod de a învăța.

Lasă un răspuns

Adresa ta de email nu va fi publicată.