jasmine framework tutorial including jasmine jquery with examples
Ovaj članak obuhvaća okvir za ispitivanje jasmina i njegove konstrukcije. Također, saznajte više o paketu Jasmine-Jquery koji proširuje Jasmine na testiranje aplikacija Jquery:
Sve smo naučili Karma u našem prethodnom vodiču u ovoj seriji.
U ovom uputstvu naučit ćemo kako koristiti Jasmine za pisanje testova za JavaScript web-aplikaciju, a također ćemo upoznati kako koristiti čvor-paket Jasmine-Jquery za testiranje web-aplikacije Jquery.
Ovdje ćemo se uglavnom usredotočiti na osnovne Jasminove konstrukcije za pisanje testova.
besplatni internetski test za ručno testiranje
Počnimo!!
Što ćete naučiti:
Što su okviri za testiranje?
Okviri za testiranje su paketi programa ili paketi koji olakšavaju testiranje drugog programa kako bi se osigurala njegova kvaliteta. Svaka programska platforma ima svoj vlastiti testni okvir, kao što ste sigurno naučili iz našeg prethodnog vodiča.
Postoje različiti skupovi testova koji se mogu provesti na bilo kojem softverskom sustavu. Primjeri takva ispitivanja uključuju jedinično testiranje, ispitivanje od kraja do kraja (e2e) itd. Provjerite ovdje za više detalja.
Primjeri okviri za testiranje JavaScript aplikacija uključuju Mocha, Jasmine, pripravnicu, jest, Qunit itd.
Uvod u okvir Jasmine
U današnjem su scenariju dostupni različiti razvojni pristupi. Od njih dva najpopularnija razvojna pristupa uključuju testno vođeni razvoj (TDD) i razvoj vođen ponašanjem (BDD).
Test-Driven Development razvojni je pristup u kojem prvo napišemo testove, a zatim ih pokrenemo. Svaki test ne uspije u svom prvom izvođenju jer funkcije koje koristi još nisu napisane.
Zatim napišemo funkcije i ponovimo testove. Ovdje neki testovi ne uspiju, a drugi prođu. Nastavljamo s faktoriziranjem koda kako bi svi testovi prošli.
Razvoj upravljan ponašanjem također slijedi isti pristup. Jedina razlika je u tome što je BDD napisan kako bi zadovoljio vlasnike softvera (klijenta / poslovno orijentiranog), tj. Kako bi zadovoljio značajke softvera s poslovnim zahtjevima ili očekivanim ponašanjem.
Dok je TDD napisan kako bi zadovoljio programere kako bi se moglo osigurati da softverske funkcije koje se koriste za izgradnju značajki daju točne rezultate, stabilne i pouzdane.
Vidjeti ovdje da biste saznali više o TDD vs BDD.
Jasmine je JavaScript okvir za testiranje koji se temelji na ponašanju, što olakšava pisanje testova i ne ovisi o bilo kojem drugom okviru.
Dva su načina na koja možete koristiti Jasmin za pisanje testova. Jedan od načina je korištenje samostalne verzije koja dolazi sa specRunner.html (koja prikazuje rezultate ispitivanja u pregledniku). Drugi je način da jednostavno instalirate Jasmine, napišete svoje testove i pokrenete ga s test pokretačem poput Karme kako biste dobili rezultate prikazane u prozoru konzole.
U našem nadolazećem vodiču razmatrali bismo oba načina korištenja Jasmine.
Osnovni Jasminovi konstrukti za pisanje testova
U nastavku su navedeni različiti sastavi jasmina za pisanje testova.
Da vidimo!!
# 1) opisuje: Ova se konstrukcija koristi za pisanje probnog paketa. Paket za testiranje zbirka je više testova. 'Opisi' je funkcija koja sama po sebi uzima dva parametra: Naziv paketa i funkcija .
Parametar funkcije sadrži zbirku testova grupiranih u paketu testova.
# 2) to: Ova se konstrukcija koristi za pisanje testnih specifikacija. Testna specifikacija skup je konstrukcija kojima se testira određeno ili najsitnije očekivanje za sustav.
Poput opisne konstrukcije, također su potrebna dva parametra: Naziv testa i funkcije koja sadrži tvrdnje koje ocjenjuju je li očekivanje ispunjeno ili ne.
# 3) očekujte : Ova konstrukcija pomaže u testiranju jesu li očekivanja od softverskog sustava ispunjena ili ne.
Potreban je parametar koji se naziva stvarni (što je rezultat koji softverski sustav vraća), a zatim je ulančan u drugu konstrukciju koja se naziva podudaranje (očekivani ishod).
# 4) Utakmice : Ovo je zbirka konstrukata za koje je očekivani konstrukt okovan. Određuje je li očekivanje ispunjeno ili ne.
Te konstrukcije uzimaju očekivanu vrijednost najbližeg ispitivanja koje se provodi i podudaraju je sa stvarnom vrijednošću dobivenom izvršavanjem testa. Klik ovdje za cjelovit popis konstrukcija za podudaranje jasmina
# 5) beforeEach : Ovo je globalna konstrukcija koju pruža Jasmine kako bi vam pomogao da testovi budu SUHI (nemojte se ponavljati). Ova se konstrukcija obično koristi u funkcijskom parametru opisane konstrukcije.
Bilo koji kôd izvodi se jednom prije nego što se pokrenu specifikacije ispod apartmana. Dakle, bilo koji kod koji želite prvo pokrenuti prije nego što se sve specifikacije u paketu stave ovdje.
# 6) afterEach: Ova je konstrukcija ista kao i beforeEach, a razlika je u tome što se kôd koji sadrži pokreće nakon svakog koda nakon pokretanja opisne konstrukcije.
# 7) ovo : Ova je konstrukcija prazan objekt koji se može koristiti za dijeljenje vrijednosti između konstrukcija 'beforeEach', 'afterEach' i 'it' u bilo kojem testnom paketu. Svaki testni paket ima svoj vlastiti objekt i objekt se resetira na prazan prije izvođenja testnih paketa.
# 8) xdescribe : Ova se konstrukcija koristi za onemogućavanje programskih paketa. Jednostavno govori trkaču da preskoči testni paket i stoga se njegov rezultat ne prikazuje i ne uzima u obzir.
# 9) pogodak : Ova se konstrukcija koristi za označavanje specifikacije u paketu kao specifikacije na čekanju. Specifikacija na čekanju je specifikacija koja se neće pokrenuti, ali će njihova imena biti prikazana u rezultatu testa kao na čekanju.
Također, ako se u bilo kojoj specifikaciji poziva funkcija na čekanju, tada se specifikacija označava kao specifikacija na čekanju. Sve specifikacije deklarirane bez tijela funkcije također su označene kao na čekanju.
# 10) špijun : Ova konstrukcija koristi se za stvaranje jasmininog špijuna. Špijuni su izrugivanje. Ismijavanja su lažni objekti stvoreni da predstavljaju ili oponašaju stvarni objekt. Izrugivanja su potrebna kako bi se spriječili režijski troškovi stvaranja stvarnog predmeta koji predstavljaju.
Suština jedinstvenog testiranja koda je vidjeti kako se funkcija ponaša pod nekoliko uvjeta neovisno o ostalim jedinicama koje su povezane ili će biti povezane s njom.
Stoga provodimo testiranje prednje jedinice kako bismo vidjeli kako će se jedinica prednjeg dijela našeg softverskog proizvoda ponašati neovisno od ostalih prednjih jedinica koje će biti povezane ili povezane s njim.
Tijekom ovog testa upućujemo pozive raznim argumentima i funkcijama koje mogu ovisiti o drugim funkcijama i objektima kao što su mrežne veze, izvori podataka i datoteke.
Da bismo zadovoljili ove ovisnosti (kako bismo mogli provesti testiranje prednje jedinice), potrebno je učiniti dostupnim potrebne resurse. Stoga usvajamo podsmijehe kako bi oponašali stvarne objekte i izbjegavali opće troškove njihovog stvarnog stvaranja.
Imajte na umu da se na jednostavnoj razini spyOn koristi za testiranje da li se zapravo zove ovisna funkcija, a ova ovisna funkcija može biti samo jednostavna funkcija koja je definirana na objektu kojeg špijuniramo.
https www google comyoutube u mp3
Funkcija spyOn uzima dva parametra: objekt koji se špijunira i funkciju ovisnosti koju sadrži i koja je provjerena kako bi bila sigurna da ga naša funkcija poziva.
Špijuni postoje u paketu ili specifikaciji u kojoj je definiran. Nakon izvršavanja suite ili specifikacije špijun prestaje postojati.
# 11) createSpy: Ova konstrukcija služi istoj svrsi kao i špijun, ali razlika je u tome što ova funkcija omogućuje zamjenu ovisne funkcije lažnom za testiranje.
Zašto to moram učiniti? To je korisno kada izvorna ovisnost ovisi i o ostalim resursima koji nisu dostupni u kontekstu testa.
Ovoj se funkciji pristupa pomoću objekta Jasmine s točkom, tj. Jasmine.createSpy (parametri). Potreban je samo jedan parametar, a to je niz koji predstavlja ime ovisnosti za koju stvaramo lažnu.
Imajte na umu da se nakon stvaranja špijuna špijun na prvom pozivu vraća nedefiniran, jer se pretpostavlja da je prvi poziv njegov trening. Zatim, nakon sljedećih poziva, funkcija vraća stvarnu vrijednost. Pogledajte više detalja dok ga istražujemo u nastavku.
Jasminov test dvostruke funkcije
Konstrukcije spyOn i createSpy omogućuju stvaranje lažnih (za ovisnost). To nije ništa drugo do testiranje dviju funkcija u jednom testu, dakle izjava 'testiranje dvostruke funkcije'.
Druga riječ koja se može upotrijebiti za upućivanje na podsmijehe je 'klice'.
Uhodači špijuna: Postoji nekoliko podudarnika koji udovoljavaju potrebi interakcije sa špijunima. Oni uključuju: 'ToHaveBeenCalled' i 'toHaveBeenCalledWith' .
-
- toHaveBeenCalled : Ovo se koristi u specifikaciji kako bi se utvrdilo je li pozvana ovisnost koja se špijunira.
- toHaveBeenCalledWith : Ovo se koristi u specifikaciji za utvrđivanje da je špijunirana ovisnost pozvana s određenim skupom parametara.
Posjetiti ovdje za detaljan pregled svih Jasminovih konstrukcija.
kako otvoriti dat datoteke na iphone -
Dva načina korištenja jasmina
Postoje dva načina za pisanje Jasminovih testova. Jedno je korištenje Jasmine kao samostalne distribucije putem specRunnera, a drugo korištenje Jasmina s test trkačem.
Prvo pogledajmo pokretanje testova Jasmine putem specRunnera.
Kako koristiti jasminovu samostalnu distribuciju?
Klik ovdje , a zatim preuzmite samostalnu distribuciju klikom na Jasmin-samostalni .
Otpakirajte datoteku u mapu projekta. Otkrićete da dodaje ove direktorije u direktorij projekta: lib, src i spec; a također dodaje ove datoteke: specRunner.html i MIT.LICENSE.
Direktorij lib sadrži biblioteku Jasmine koja izvršava testove sadržane u test datotekama dodanim u datoteku specRunner.html. Datoteka specRunner.html omogućuje vam pokretanje testa i prikaz rezultata u pregledniku u formatu web stranice, a ne u prozoru konzole.
Direktorij src sadrži prednje izvorne kodove, a direktorij spec sadrži testne datoteke napisane pomoću Jasminovih probnih paketa. Prema zadanim postavkama možete vidjeti neke skupove i datoteke za testiranje unutar direktorija, ali ih nećemo koristiti, već bismo napisali vlastite testove u sljedećim vodičima.
Korištenje jasmina s test trkačem
Ovo je drugi način korištenja Jasmine, gdje konfigurirate test-runnera poput Karme i hranite ga izvornom datotekom i testnom specifikacijskom datotekom za pokretanje testova.
Zatim možete prikazati rezultate i generirati izvješća pomoću Istanbula ili objaviti rezultate testa na coveralls.io.
Uvod u Jasmine-Jquery
Jasmine-Jquery je čvorni paket koji pomaže u testiranju prednjih kodova izgrađenih s jqueryjem. Na neki način, proširuje okvir Jasmine kako bi bio pogodan za Jqueryjevo front-end testiranje.
Proširenja koja dodaje u okvir Jasmine uključuju:
- Skup prilagođenih podudaranja za Jquery okvir, poput toBeChecked, toBeDisabled, toBeEmpty itd.
- API za rukovanje HTML, CSS i JSON uređajima u našim specifikacijama.
Sada je pitanje 'što je API?' API (sučelje za programiranje aplikacija) sučelje je koje vam omogućuje pristup određenim funkcijama koje će vam trebati vremena i resursa za izgradnju od nule.
Drugo je pitanje što su čvora? Učvršćenja su unaprijed definirana stanja objekta koja obično stvaramo dok pišemo testove kako bismo uspostavili osnovnu liniju (dobro poznato i fiksno okruženje) prema kojoj se testovi izvode kako bi se rezultati ponovili.
Vidjeti ovdje za više detalja o prilagođenim podudaranjima i API-ima.
Zaključak
U ovom uputstvu pokušali smo shvatiti što je okvir za testiranje i predstavili smo Jasmine kao JavaScript okvir za testiranje. Pregledali smo različite Jasminine konstrukcije koji se mogu koristiti za pisanje testnih specifikacija i na kraju smo predstavili Jasmine-Jquery koji je paket temeljen na čvorovima koji proširuje Jasmine kako bi mogao testirati Jquery aplikacije.
Za poneti
- Okvir za testiranje je skup programa ili paketa koji olakšavaju testiranje softvera kako bi se osigurala kvaliteta razvijenog softvera.
- Jasmine je bihevioralni razvojni alat koji pruža konstrukte koji olakšavaju pisanje testnih specifikacija za JavaScript aplikacije.
- Test-Driven Development razvojni je pristup u kojem prvo napišemo testove, a zatim ih pokrenemo. Svaki test ne uspije već pri prvom izvršavanju jer funkcija koju koristi još nije napisana. Zatim napišemo funkcije i ponovo pokrenemo testove. Ovdje neki testovi ne uspiju, a drugi prođu. Zatim nastavljamo s faktoriziranjem koda dok ne prođu svi testovi.
- Pristup razvojno usmjeren prema ponašanju je razvojni pristup u kojem se pišu testovi kako bi se utvrdilo da li se značajke softvera ponašaju onako kako se očekuje od svih dionika.
- Jasmine-Jquery je čvorni paket koji pomaže u testiranju prednjih kodova izgrađenih s Jqueryjem.
Sljedeći vodič
U našem nadolazećem vodiču istražit ćemo načine korištenja ova dva alata (Jasmine i Karma) za pisanje testnih specifikacija za tipični projekt. Također bismo vidjeli kako koristiti ostale alate poput gutljaja, pregledavanja itd. Koji su potrebni za pokretanje naših testova.
PREV Vodič | SLJEDEĆA Vodič
Preporučena literatura
- 8 alata i okvira za testiranje najboljih ponašanja vođenih razvojem (BDD)
- Kako su ispitivači uključeni u TDD, BDD i ATDD tehnike
- TDD vs BDD - Analizirajte razlike na primjerima
- Okvir BDD (Behaviour Driven Development): Kompletna lekcija
- Kako napisati dokument strategije testiranja (s uzorkom predloška strategije testiranja)
- 10 najboljih alata za testiranje API-ja u 2021. godini (SOAP i REST API alati za testiranje)
- Vodič za API testiranje: Cjelovit vodič za početnike
- Python DateTime Vodič s primjerima