jasmine framework tutorial including jasmine jquery with examples
Ta članek zajema okvir za preskušanje jasmina in njegove konstrukcije. Preberite tudi o paketu Jasmine-Jquery, ki razširi Jasmine na preizkušanje aplikacij Jquery:
Vse smo izvedeli Karma v naši prejšnji vadnici v tej seriji.
V tej vadnici se bomo naučili, kako uporabiti Jasmine za pisanje testov za spletno aplikacijo JavaScript in spoznali tudi uporabo paketa Jasmine-Jquery, ki temelji na vozliščih, za testiranje spletne aplikacije Jquery.
Tu se bomo osredotočili predvsem na osnovne Jasminove konstrukte za pisanje testov.
qa vprašanja in odgovori na razgovoru za delo
Začnimo!!
Kaj se boste naučili:
Kaj so okviri za testiranje?
Okvirji za testiranje so sklopi programov ali paketov, ki olajšajo testiranje drugega programa, da se zagotovi njegova kakovost. Vsaka programska platforma ima svoj testni okvir, kot ste se že morali naučiti iz naše prejšnje vadnice.
Obstajajo različni sklopi testov, ki jih je mogoče izvesti na katerem koli programskem sistemu. Primeri taki preskusi vključujejo enotno preskušanje, preskušanje od konca do konca (e2e) itd. Preverite tukaj za več podrobnosti.
Primeri preskusni okviri za aplikacije JavaScript vključujejo Mocha, Jasmine, intern, jest, Qunit itd.
Uvod v Jasmine Framework

V današnjem scenariju so na voljo različni razvojni pristopi. Med njimi sta med najbolj priljubljena razvojna pristopa vključena testno vodeni razvoj (TDD) in vedenjski razvoj (BDD).
Test-Driven Development je razvojni pristop, pri katerem najprej napišemo teste in jih nato zaženemo. Vsak test ne uspe že pri prvi izvedbi, ker funkcije, ki jih uporablja, še niso napisane.
Nato napišemo funkcije in ponovimo teste. Tu nekateri testi ne uspejo, drugi pa opravijo. Kodo nenehno preoblikujemo, da bodo vsi testi uspešno opravljeni.
Tudi vedenjski razvoj temelji na istem pristopu. Edina razlika je v tem, da je BDD napisan tako, da zadovoljuje lastnike programske opreme (usmerjene k strankam / podjetjem), tj.
Medtem ko je TDD napisan tako, da zadovoljuje razvijalce programske opreme, tako da je mogoče zagotoviti, da funkcije programske opreme, ki se uporabljajo pri izdelavi funkcij, dajejo natančne rezultate, stabilne in zanesljive.
Glej tukaj če želite izvedeti več o TDD in BDD.
Jasmine je testno ogrodje JavaScript, ki temelji na vedenju, kar olajša pisanje testov in ni odvisno od katerega koli drugega okvira.
Jasmin lahko napišete na dva načina. Eden od načinov je uporaba samostojne različice, ki je priložena specRunner.html (ki prikaže rezultate testa v brskalniku). Drugi način je, da preprosto namestite Jasmine, napišete teste in jih zaženete s testnim tekačem, kot je Karma, da se rezultati prikažejo v oknu konzole.
V naši prihajajoči vadnici bi preučili oba načina uporabe Jasmine.
Osnovni Jasminovi konstrukti za pisanje testov
Spodaj so navedeni različni konstrukti jasmina za pisanje testov.
Pa poglejmo!!
# 1) opisuje: Ta konstrukcija se uporablja za pisanje testne zbirke. Testna zbirka je zbirka več testov. 'Opiši' je funkcija sama po sebi, ki ima dva parametra: Ime zbirke in funkcije .
Parameter funkcije vsebuje zbirko testov, združenih v sklop testov.
# 2) to: Ta konstrukcija se uporablja za pisanje testne specifikacije. Testna specifikacija je nabor konstruktov, ki preizkušajo določeno ali najbolj minutno pričakovanje za sistem.
Tako kot opisni konstrukt ima tudi dva parametra: Ime testa in funkcije, ki vsebuje trditve, ki ocenjujejo, ali je pričakovanje izpolnjeno ali ne.
# 3) pričakujte : Ta konstrukcija pomaga pri testiranju, ali so pričakovanja od programskega sistema izpolnjena ali ne.
Vzame parameter, imenovan dejanski (kar je rezultat, ki ga sistemski sistem vrača), nato pa je verižen z drugim konstruktom, imenovanim ujemanje (pričakovani izid).
# 4) Tekme : To je zbirka konstruktov, na katere je pričakovan konstrukt priklenjen. Določa, ali je pričakovanje izpolnjeno ali ne.
Ti konstrukti vzamejo pričakovano vrednost najbližjega preskusa, ki se izvaja, in jo uskladijo z dejansko vrednostjo, pridobljeno med izvajanjem testa. Kliknite tukaj za popoln seznam konstruktov za ujemanje Jasmine
# 5) beforeEach : To je globalna konstrukcija, ki jo je Jasmine zagotovil, da vam pomaga, da so vaši testi SUHI (ne ponavljajte se). Ta konstrukt se običajno uporablja v funkcijskem parametru opisanega konstrukta.
Vsaka koda znotraj se zažene enkrat, preden se zaženejo specifikacije pod apartmaji. Zato je treba tu vstaviti katero koli kodo, ki jo želite najprej zagnati, preden se vse specifikacije v paketu namestijo.
# 6) afterEach: Ta konstrukcija je enaka kot beforeEach, razlika pa je v tem, da se koda, ki jo vsebuje, zažene za vsako kodo, ko je izveden opisni konstrukt.
# 7) to : Ta konstrukcija je prazen objekt, s katerim lahko delimo vrednosti med konstrukcijami 'beforeEach', 'afterEach' in 'it' v vseh testnih zbirkah. Vsak preskusni paket ima svoj objekt in pred začetkom izvajanja testnih paketov se objekt ponastavi na prazen.
# 8) xdescribe : Ta konstrukcija se uporablja za onemogočanje programskih paketov. Preizkusnemu tekaču preprosto pove, da preskoči testno zbirko, zato njegov rezultat ni prikazan in upoštevan.
# 9) zadetek : Ta konstrukcija se uporablja za označevanje specifikacije v paketu kot čakajoče specifikacije. Specifikacija v teku je specifikacija, ki se ne bo zagnala, njihova imena pa bodo v rezultatu testa prikazana kot čakajoča.
Če je v kateri koli specifikaciji poklicana čakajoča funkcija, je specifikacija označena kot čakajoča specifikacija. Vse specifikacije, razglašene brez telesa funkcije, so prav tako označene kot čakajoče.
# 10) vohun : Ta konstrukcija se uporablja za ustvarjanje jasmina Jasmine. Vohuni so posmehljivci. Posmehi so ponarejeni predmeti, ustvarjeni za predstavitev ali posnemanje resničnega predmeta. Posmehi so potrebni, da se preprečijo režijski stroški ustvarjanja resničnega predmeta, ki ga predstavljajo.
Bistvo preizkušanja enote kode je videti, kako se funkcija obnaša v več pogojih, neodvisno od drugih priključenih enot ali pa bo nanjo povezana.
Tako opravimo testiranje čelne enote, da ugotovimo, kako se bo enota čelnega dela našega programskega izdelka obnašala neodvisno od drugih čelnih enot, ki bodo povezane ali povezane z njo.
Med tem preskusom pokličemo različne argumente in funkcije, ki so lahko odvisne od drugih funkcij in predmetov, kot so omrežne povezave, viri podatkov in datoteke.
Da bi zadostili tem odvisnostim (da lahko izvedemo preskušanje enote na čelnem koncu), moramo zagotoviti potrebna sredstva. Zato sprejemamo posmeh, da posnemamo resnične predmete in se izognemo režijskim stroškom njihovega dejanskega ustvarjanja.
Upoštevajte, da se na preprosti ravni s spyOn preizkuša, ali je dejansko poklicana odvisna funkcija, in ta odvisna funkcija je lahko le preprosta funkcija, ki je definirana na predmetu, ki ga vohunimo.
kako zaženem datoteko jar
Funkcija spyOn ima dva parametra: predmet, ki ga vohuni, in funkcijo odvisnosti, ki jo vsebuje, ki je preverjena, da se prepriča, da jo naša funkcija pokliče.
V paketu ali specifikaciji, v kateri je definirana, obstajajo vohuni. Po izvedbi suite ali specifikacije vohun preneha obstajati.
# 11) createSpy: Ta konstrukcija ima enak namen kot spyOn, vendar je razlika v tem, da ta funkcija omogoča, da za preskušanje nadomestimo odvisno funkcijo s ponarejeno.
Zakaj moram to storiti? To je koristno, če je prvotna odvisnost odvisna tudi od drugih virov, ki niso na voljo v kontekstu testa.
Do te funkcije lahko dostopate s predmetom Jasmine s piko, tj. Jasmine.createSpy (parametri). Potrebuje samo en parameter, ki je niz, ki predstavlja ime odvisnosti, za katero ustvarjamo lažno predstavitev.
Po ustvarjanju vohuna se vohun prvega klica vrne nedoločen, saj naj bi bil prvi klic njegov trening. Po naslednjih klicih funkcija vrne dejansko vrednost. Več podrobnosti si oglejte v nadaljevanju.
Jasmine Test Double Function Feature
Konstrukta spyOn in createSpy omogočata ustvarjanje posmehov (za odvisnost). To ni nič drugega kot preizkušanje dveh funkcij v enem testu, torej izjava 'preizkus dvojne funkcije'.
Druga beseda, s katero se lahko sklicujemo na posmeh, je 'škrbine'.
Vohunske tekme: Obstaja več tekmovalcev, ki poskrbijo za potrebo po interakciji z vohuni. Vključujejo: 'ToHaveBeenCalled' in 'toHaveBeenCalledWith' .
-
- toHaveBeenCalled : To se uporablja v specifikaciji, da se ugotovi, ali je bila klicana odvisnost, ki je bila vohunjena.
- toHaveBeenCalledWith : To se uporablja v specifikaciji, da se ugotovi, da je bila odgledana odvisnost poklicana z določenim nizom parametrov.
Obiščite tukaj za podroben oris vseh Jasminovih konstruktov.
kako odpreti torrent datoteko na računalniku
Dva načina uporabe jasmina
Jasminove teste lahko napišete na dva načina. Ena je uporaba Jasmine kot samostojne distribucije prek specRunnerja, druga pa Jasmine s testnim tekačem.
Najprej si oglejmo izvajanje testov Jasmine prek specRunnerja.
Kako uporabiti samostojno distribucijo jasmina?
Kliknite tukaj in nato s klikom na prenos samostojne distribucije Jasmin samostojen .
Razpakirajte datoteko v mapo projekta. Odkrili boste, da doda ta imenik v imenik projekta: lib, src in spec; in doda še te datoteke: specRunner.html in MIT.LICENSE.
Imenik lib vsebuje knjižnico Jasmine, ki izvaja teste, vsebovane v testnih datotekah, dodanih v datoteko specRunner.html. Datoteka specRunner.html omogoča zagon testa in ogled rezultata v brskalniku v obliki spletne strani in ne v oknu konzole.
Imenik src vsebuje vhodne izvorne kode, imenik spec pa testne datoteke, napisane s testnimi zbirkami Jasmine. Privzeto lahko v imenikih vidite nekaj testnih zbirk in datotek, vendar jih ne bomo uporabljali, v naslednjih vajah bi napisali lastne teste.
Uporaba jasmina s tekačem
To je drugi način uporabe Jasmine, kjer konfigurirate testnega tekača, kot je Karma, in ga zaženete z izvorno datoteko in testno datoteko s specifikacijami.
Nato lahko rezultate prikažete in ustvarite poročila s pomočjo Istanbula ali pa rezultate testa objavite na coveralls.io.
Uvod v Jasmine-Jquery
Jasmine-Jquery je paket vozlišč, ki pomaga pri testiranju čelnih kod, zgrajenih z jquery. Na nek način razširja ogrodje Jasmine, tako da je zelo primeren za Jquery-jevo testiranje na čelni strani.
Razširitve, ki jih doda Jasmineovemu okviru, vključujejo:
- Nabor prilagojenih ujemanj za ogrodje Jquery, kot so toBeChecked, toBeDisabled, toBeEmpty itd.
- API za obdelavo elementov HTML, CSS in JSON v naših specifikacijah.
Zdaj je vprašanje 'kaj je API?' API (vmesnik za programiranje programov) je vmesnik, ki vam omogoča dostop do nekaterih funkcij, za katere boste morda potrebovali čas in vire, da jih boste lahko zgradili iz nič.
Drugo vprašanje je, kaj so napeljave? Vpenjanja so vnaprej določena stanja predmeta, ki jih običajno ustvarimo med pisanjem testov, da bi vzpostavili osnovno črto (dobro znano in fiksno okolje), na podlagi katere se testi izvajajo, da bi bili rezultati ponovljivi.
Glej tukaj za več podrobnosti o prilagojenih ujemanjih in API-jih.
Zaključek
V tej vadnici smo poskušali razumeti, kaj je preskusni okvir, in Jasmine smo predstavili kot preskusni okvir JavaScript. Ogledali smo si različne Jasminine konstrukte, ki jih lahko uporabimo za pisanje testnih specifikacij, in nazadnje smo predstavili Jasmine-Jquery, ki je paket, ki temelji na vozliščih in razširja Jasmine, da lahko preizkuša aplikacije Jquery.
Odvoz
- Okvir za testiranje je sklop programov ali paketov, ki olajšajo testiranje programske opreme za zagotovitev kakovosti razvite programske opreme.
- Jasmine je vedenjsko usmerjeno razvojno orodje, ki nudi konstrukte, ki olajšajo pisanje testnih specifikacij za aplikacije JavaScript.
- Test-Driven Development je razvojni pristop, pri katerem najprej napišemo teste in jih nato zaženemo. Vsak test ne uspe že pri prvi izvedbi, ker funkcija, ki jo uporablja, še ni napisana. Nato napišemo funkcije in znova zaženemo teste. Tu nekateri preizkusi ne uspejo, drugi pa opravijo. Nato kodo nadaljujemo, dokler ne prestanejo vsi testi.
- Vedenjsko usmerjen razvojni pristop je razvojni pristop, pri katerem se naredijo testi, s katerimi se ugotovi, ali se funkcije programske opreme obnašajo, kot pričakujejo vse zainteresirane strani.
- Jasmine-Jquery je paket vozlišč, ki pomaga pri testiranju čelnih kod, zgrajenih z Jqueryjem.
Naslednja vadnica
V naši prihajajoči vadnici bomo raziskali načine uporabe teh dveh orodij (Jasmine in Karma) za pisanje testnih specifikacij za tipičen projekt. Videli bi tudi, kako uporabiti druga orodja, kot so gutljaj, brskanje, itd., Ki so potrebna za izvajanje naših testov.
PREV Vadnica | NASLEDNJA Vadnica
Priporočeno branje
- 8 orodij za razvoj najboljših vedenj (BDD) in okviri za testiranje
- Kako so preizkuševalci vključeni v tehnike TDD, BDD in ATDD
- TDD Vs BDD - Analizirajte razlike s primeri
- Okvir BDD (Behavio Driven Development): Popolna vadnica
- Kako napisati testni dokument strategije (z vzorčno predlogo preizkusne strategije)
- 10 najboljših orodij za testiranje API-jev v letu 2021 (orodja za testiranje API-jev SOAP in REST)
- Vadnica za testiranje API-jev: Popoln vodnik za začetnike
- Vadnica Python DateTime s primeri