Primii pași cu Jasmine

Cuprins
Astăzi este un moment bun pentru a fi dezvoltator JavaScriptSe poate spune că este chiar interesant, deoarece tehnologiile care îl cuprind s-au maturizat destul de mult, browserele web sunt mai standardizate și în fiecare zi apar mai multe lucruri noi cu care să te joci și să experimentezi.
JavaScript este un limbaj consacrat și web este principala platformă de astăzi, unde am văzut apariția aplicațiilor cu o singură pagină, proliferarea cadrelor MVC, cum ar fi AngularJS sau Backbone.js, folosind JavaScript de pe server cu Node.js și chiar aplicații mobile create numai folosind HTML, CSS Da JavaScript cu tehnologii precum PhoneGap.
De la începuturile sale umile, JavaScript a fost însărcinat să servească drept limbaj pentru a manipula datele și a le valida în formularele din HTML și în prezent este folosit pentru a construi aplicațiile puternice pe care le putem vedea pe web. Văzând acest lucru se poate spune că JavaScript A parcurs un drum lung, precum și instrumentele care au apărut pentru a ne asigura că avem aceeași calitate ca și cum am fi fost în alte limbi.
Unul dintre aceste instrumente este Iasomie, care nu este altceva decât un cadru de dezvoltare orientat spre comportament și care ne permite să creăm teste unitare automate pentru limbajul de programare JavaScript. Înainte de a intra pe deplin cu acest instrument, să vedem fundalul care a dus la dezvoltarea acestuia, precum și concepte cheie pentru a înțelege cum funcționează JavaScript.
Astăzi nimeni nu se îndoiește de puterea JavaScriptCu toate acestea, există complicații atunci când lucrăm pe partea clientului și unul dintre motivele evidente este că nu putem controla mediul de execuție al acestuia. Pe server nu avem această problemă, deoarece putem rula o versiune specifică a Node.js dar în cazul browserului web nu putem spune utilizatorului să utilizeze o versiune specifică a Crom sau Firefox.
Limba JavaScript este definit în specificații ECMAScript deci fiecare browser poate avea propria implementare a mediului pentru al rula, provocând mici diferențe sau erori între ele. Fiecare obiect al JavaScript este modificabil, deci nu avem niciun fel de control pentru a împiedica un modul să suprascrie piese ale altora, pentru a ilustra acest lucru, să vedem un segment de cod mic în care putem vedea cât de ușor este să suprascrieți funcția globală consolă.log:
 console.log ('test'); console.log = 'pauză'; console.log ('test');
Să vedem răspunsul de pe consolă, unde putem vedea clar eroarea, deoarece am suprascris funcția:

Acest mod de a fi al limbii a fost o decizie luată în proiectarea sa, deoarece a permis dezvoltatorilor să adauge funcționalități lipsă, dar având în vedere această versatilitate, este relativ mai ușor să greșească, chiar și o versiune mai recentă a limbii a introdus funcţie Obiect.sigil ceea ce a împiedicat acest lucru, dar suportul său s-a extins doar la câteva browsere.
O altă problemă pe care o prezentăm JavaScript este manipularea tipurilor, în alte limbi o expresie precum '1' + 1 va genera probabil o eroare, dar în JavaScript acest lucru ar duce la 11. Acest lucru poate duce la câteva probleme greu de găsit, de exemplu, să presupunem că avem următoarele:
 var a = 1, b = '5', c = 4, d = 2; var rezultat = a + b + c * d; console.log (rezultat);
Să vedem răspunsul prin consolă atunci când rulăm codul nostru în browser:

După cum putem vedea, rezultatul a fost un șir, deci dacă ne așteptam la un număr într-o funcție sau rutină specială, acest lucru poate provoca o problemă, iar găsirea acestei erori poate însemna pierderea a câteva ore din prețioasa noastră perioadă de dezvoltare.
Este important să menționăm că punctele pe care tocmai le-am menționat nu sunt un motiv pentru care nu trebuie utilizate JavaScriptEste pur și simplu să vedem unde are unele slăbiciuni, dar acest lucru nu înseamnă că este un limbaj prost, putem chiar să ne asigurăm că posibilitățile pe care ni le oferă sunt infinite în ceea ce privește dezvoltarea aplicațiilor și ceea ce este mai bun, avem în continuare instrumente care vom ajuta cu cele mai bune practici ale acestora.
După cum am menționat, Iasomie Este un cadru mic care ne ajută cu testele noastre unitare în cadrul dezvoltărilor noastre și care folosește filosofia dezvoltării orientate spre comportament pe care o vom explica mai târziu, dar înainte de a continua să vedem un concept important și anume că acestea sunt teste unitare.
Teste unitare teste unitare Sunt piese de cod care testează funcționalitățile unităților din codul aplicației noastre, care la începutul acestei căi dezvoltatorul a rămas cu o filozofie tradițională care se concentra pe dezvoltarea orientată spre test în loc de orientarea spre comportament.
De aceea creatorii Iasomie restructurează acest mod tradițional de testare, în care dezvoltatorul a rămas fără o imagine clară de unde să înceapă în procesul de testare, neștiind ce să testeze și cât de mare ar putea fi un modul de testare sau chiar ceea ce ar numi unul dintre aceste teste . De exemplu, dacă folosim filosofia Iasomie Pentru a efectua testele, să presupunem că avem un player de muzică care va avea următoarele criterii de acceptare: Având în vedere playerul, atunci când o melodie este întreruptă, atunci jucătorul trebuie să indice că melodia a fost întreruptă.
Deci, putem lua criteriul și îl putem împărți astfel:
  • Date (Un context inițial)
  • Când (Evenimentul are loc)
  • Apoi (se ia o acțiune)
Iasomie ne permite să traducem cele de mai sus într-un cod care va fi scris într-un mod care să reflecte fără probleme valorile aplicației noastre, care pot arăta astfel:
 describe ("Player", function () {describe ("Când melodia este întreruptă", function () {it ("Trebuie să indice că melodia este întreruptă", function () {});});});
După cum putem vedea, criteriile noastre au fost transferate către Iasomie fără mari probleme, unde putem spune că fiecare criteriu este tradus într-un test unitar.
Am putea arunca deja o privire la cum Iasomie gestionează criteriile și le transformă în sintaxa sa, creând testele unitare pentru aceasta, dar pentru a ajunge acolo, să vedem mai întâi cum să obținem mai întâi cadrul. Pentru a face acest lucru, mergem la pagina proiectului și o descărcăm:

MARI

Când îl dezarhivăm, trebuie să mergem în dosar dist, acolo vom găsi toate distribuțiile de Iasomie până în prezent, de unde să începem să-l folosim trebuie să selectăm distribuția dorită, de preferință cea mai recentă și să o dezarhivăm în folderul proiectului nostru, să intrăm în folder și să executăm fișierul SpecRunner.html:

Iasomie Include în mod implicit câteva exemple de teste unitare, în care se află fișierul SpecRunner.html este responsabil de conectarea codului Jasmine care include fișierele sursă și fișierele pentru testare, să vedem conținutul acestuia:
 Jasmine Spec Runner v2.2.0 
După cum putem vedea, este destul de simplu și ne permite să definim o structură de bază pentru testele noastre, oferindu-ne un ajutor de unde să începem în această lume a testelor unitare. Este de la sine înțeles că este o idee bună să aruncăm o privire asupra codului distribuției noastre de Iasomie pentru a ne familiariza cu modul în care funcționează.
Este important să menționăm că Iasomie nu doar limitat la codul scris cu JavaScript pur, putem testa acele aplicații create cu Backbone.js sau AngularJS, chiar și versatilitatea sa merge mult mai departe și ne permite să efectuăm teste pe server în cazul în care îl folosim Node.js.
RecomandareIasomie Este un cadru care ne ajută foarte mult în ceea ce privește testele unitare, totuși conceptele utilizate în acesta nu sunt atât de simple, este susținut de anumite practici avansate de JavaScript precum generarea codului HTML folosind funcția createDom () pentru a insera elementele în el, pentru a menționa unele dintre aceste caracteristici, așa că vă recomandăm să faceți o plimbare prin documentația JavaScript să fii mult mai pregătit pentru viitoarele tutoriale.
Cu aceasta am terminat acest tutorial, unde am putea face primii pași Iasomie, mergând puțin prin motivația de a crea instrumente pe care să le testați JavaScript și modul în care dezvoltarea orientată spre comportament ne ajută să creăm teste mai bune, văzând și cum Iasomie este un cadru destul de flexibil pentru testare, permițându-ne să folosim aceeași instanță pentru a testa toate tipurile de cod în JavaScript în aplicațiile noastre.
wave wave wave wave wave