jasmine framework tutorial including jasmine jquery with examples
Tento článok sa týka rámca na testovanie jasmínu a jeho konštrukcií. Dozviete sa tiež viac o balíku Jasmine-Jquery, ktorý rozširuje jasmín o testovanie aplikácií Jquery:
Dozvedeli sme sa všetko o Karma v našom predchádzajúcom návode v tejto sérii.
V tomto tutoriáli sa naučíme, ako používať Jasmine na písanie testov pre webovú aplikáciu JavaScript, a tiež sa naučíme, ako používať uzlový balíček Jasmine-Jquery na testovanie webovej aplikácie Jquery.
Tu sa zameriame hlavne na základné jasmínové konštrukcie pre písanie testov.
otázky a odpovede na pohovor o testovaní predajnej sily pdf
Začnime!!
Čo sa dozviete:
Čo sú to testovacie rámce?
Testovacie rámce sú sady programov alebo balíkov, ktoré uľahčujú testovanie iného programu, aby sa zabezpečila jeho kvalita. Každá programovacia platforma má svoj vlastný testovací rámec, ako ste sa určite dozvedeli z nášho predchádzajúceho tutoriálu.
Existujú rôzne sady testov, ktoré je možné vykonať na ľubovoľnom softvérovom systéme. Príklady z týchto testov patrí testovanie jednotky, testovanie typu end-to-end (e2e) atď. Skontrolujte tu pre viac detailov.
Príklady testovacích rámcov pre aplikácie JavaScript zahŕňajú Mocha, Jasmine, intern, jest, Qunit atď.
Úvod do rámca Jasmine
V súčasnom scenári sú k dispozícii rôzne vývojové prístupy. Z nich dva z najpopulárnejších vývojových prístupov zahŕňajú Test-Driven Development (TDD) a Behavior Driven Development (BDD).
Test-Driven Development je vývojový prístup, pri ktorom najskôr napíšeme testy a potom ich spustíme. Každý test zlyhá pri prvom spustení, pretože funkcie, ktoré používa, ešte neboli napísané.
Potom napíšeme funkcie a znova spustíme testy. Tu niektoré testy zlyhajú a ostatné vyhovejú. Pokračujeme v refaktoringu kódu, aby prešli všetky testy.
Rovnaký prístup sleduje aj behaviorálny rozvoj. Jediný rozdiel je v tom, že BDD je napísaný tak, aby uspokojil majiteľov softvéru (zameraného na zákazníka / podnik), t. J. Aby splnili funkcie softvéru s obchodnými požiadavkami alebo očakávaným správaním.
Zatiaľ čo TDD je napísaný tak, aby uspokojil vývojárov softvéru, aby bolo možné zaručiť, že softvérové funkcie, ktoré sa používajú pri vytváraní týchto funkcií, poskytujú presné výsledky, stabilné a spoľahlivé.
Pozri tu vedieť viac o TDD vs BDD.
Jasmine je rámec pre testovanie JavaScriptu, ktorý je založený na chovaní, čo uľahčuje písanie testov a nezávisí od iného rámca.
Existujú dva spôsoby, ako použiť Jasmine na písanie testov. Jedným zo spôsobov je použitie samostatnej verzie dodávanej so súborom specRunner.html (ktorá zobrazuje výsledky testov v prehliadači). Ďalším spôsobom je jednoduchá inštalácia Jasmine, napísanie testov a spustenie pomocou testovacieho bežca ako Karma, aby sa výsledky zobrazili v okne konzoly.
V našom pripravovanom výučbe by sme sa pozreli na oba spôsoby použitia Jasmine.
Základné konštrukty jazmínu na písanie testov
Nižšie sú uvedené rôzne konštrukty Jasmine na písanie testov.
Pozrime sa!!
# 1) popisuje: Tento konštrukt sa používa na napísanie testovacej sady. Sada testov je súborom viacerých testov. ‘Description’ je funkcia sama o sebe, ktorá má dva parametre: Názov balíka a funkcie .
Funkčný parameter obsahuje kolekciu testov zoskupených v rámci testovacej sady.
# 2) to: Tento konštrukt sa používa na napísanie testovacej špecifikácie. Skúšobná špecifikácia je sada konštrukcií, ktoré testujú konkrétne alebo najminútovejšie očakávania systému.
Rovnako ako description construct, vyžaduje aj dva parametre: Názov testu a funkcia, ktorá obsahuje tvrdenia hodnotiace, či je očakávanie splnené alebo nie.
# 3) očakávať : Tento konštrukt pomáha pri testovaní, či sú alebo nie sú očakávania od softvérového systému splnené.
Trvá parameter zvaný skutočný (čo je výsledok, ktorý softvérový systém vracia) a potom je reťazený s ďalším konštruktom nazývaným porovnávač (očakávaný výsledok).
# 4) Zhody : Toto je zbierka konštruktov, s ktorými je očakávaný konštrukt spojený. Určuje, či je očakávanie splnené alebo nie.
open source nástroje na testovanie webových služieb
Tieto konštrukty berú očakávanú hodnotu najbližšieho vykonaného testu a porovnávajú ho so skutočnou hodnotou získanou pri vykonaní testu. Kliknite tu pre kompletný zoznam konštruktov porovnávača jazmínov
# 5) beforeEach : Toto je globálny konštrukt, ktorý poskytuje Jasmine, aby vám pomohol udržať vaše testy SUCHÉ (neopakujte sa). Tento konštrukt sa zvyčajne používa v parametri funkcie popísaného konštruktu.
Akýkoľvek kód vo vnútri sa spustí raz predtým, ako sa spustia špecifikácie v balíkoch. Preto by sa sem mal umiestniť akýkoľvek kód, ktorý chcete spustiť ako prvý, pred všetkými špecifikáciami v balíku.
# 6) afterEach: Tento konštrukt je rovnaký ako beforeEach a rozdiel je v tom, že kód, ktorý obsahuje, sa spustí po každom kóde, akonáhle sa spustí konštrukcia popisu.
# 7) toto : Tento konštrukt je prázdny objekt, ktorý možno použiť na zdieľanie hodnôt naprieč konštrukciami ‘beforeEach’, ‘afterEach‘ a ‘it‘ v ľubovoľných testovacích sadách. Každá testovacia sada má svoj vlastný objekt a pred vykonaním testovacích balíkov sa objekt resetuje na prázdny.
# 8) xdescribe : Táto konštrukcia sa používa na zakázanie softvérových balíkov. Jednoducho informuje bežca testu, aby preskočil testovaciu sadu, a preto sa jeho výsledok nezobrazuje a neberie do úvahy.
# 9) hit : Tento konštrukt sa používa na označenie špecifikácie v balíku ako čakajúca špecifikácia. Čakajúca špecifikácia je špecifikácia, ktorá sa nespustí, ale vo výsledku testu sa bude zobrazovať ako nespracované.
Tiež, ak sa v nejakej špecifikácii volá čakajúca funkcia, potom je špecifikácia označená ako čakajúca špecifikácia. Akákoľvek špecifikácia deklarovaná bez tela funkcie je tiež označená ako nespracovaná.
# 10) spyOn : Tento konštrukt sa používa na vytvorenie jasmínového špióna. Špióni sú falošní. Mocks sú falošné objekty vytvorené tak, aby reprezentovali alebo napodobňovali skutočný objekt. Od makiet sa vyžaduje, aby sa zabránilo režijným nákladom na vytvorenie skutočného objektu, ktorý predstavujú.
Podstatou testovania jednotky kódu je zistiť, ako sa funkcia správa za niekoľkých podmienok nezávisle od ostatných pripojených jednotiek alebo k nej budú pripojené.
Vykonávame teda testovanie front-endových jednotiek, aby sme zistili, ako sa bude jednotka front-endu nášho softvérového produktu správať nezávisle od ostatných front-endových jednotiek, ktoré budú pripojené alebo sú k nej pripojené.
Počas tohto testu uskutočňujeme hovory na rôzne argumenty a funkcie, ktoré môžu závisieť od ďalších funkcií a objektov, ako sú sieťové pripojenia, zdroje údajov a súbory.
Na splnenie týchto závislostí (aby sme mohli vykonať testovanie front-endových jednotiek) je potrebné sprístupniť požadované zdroje. Preto prijímame zosmiešňovanie, aby sme napodobnili objekty v reálnom svete a vyhli sa režijným nákladom na ich skutočné vytvorenie.
Všimnite si, že na jednoduchej úrovni sa spyOn používa na testovanie, či sa závislá funkcia skutočne volá, a táto závislá funkcia môže byť iba jednoduchá funkcia definovaná na objekte, ktorý špehujeme.
Funkcia spyOn má dva parametre: sledovaný objekt a závislosť, ktorú obsahuje, ktorá je skontrolovaná, aby sme sa uistili, že ho naša funkcia volá.
Špióni existujú v suite alebo v špecifikácii, v ktorej sú definované. Po vykonaní sady alebo špecifikácie špión prestane existovať.
# 11) createSpy: Táto konštrukcia slúži rovnakému účelu ako spyOn, ale rozdiel je v tom, že táto funkcia umožňuje na testovanie nahradiť závislú funkciu falošnou.
Prečo to musím robiť? Je to užitočné, keď pôvodná závislosť závisí aj od ďalších zdrojov, ktoré nie sú k dispozícii v kontexte testu.
Táto funkcia je prístupná pomocou objektu Jasmine s bodkou, tj. Jasmine.createSpy (parametre). Trvá to iba jeden parameter, ktorým je reťazec predstavujúci názov závislosti, pre ktorú falošný model vytvárame.
Všimnite si, že po vytvorení špióna sa špión pri prvom hovore vráti nedefinovaný, pretože sa predpokladá, že prvý hovor je jeho výcvik. Potom po následných volaniach funkcia vráti skutočnú hodnotu. Nižšie nájdete ďalšie podrobnosti, keď ich preskúmame.
Funkcia dvojitej funkcie testu jazmínu
Konštrukcie spyOn a createSpy umožňujú vytváranie falošných správ (pre závislosť). To nie je nič iné ako testovanie dvoch funkcií v jednom teste, teda vyhlásenie „testovať dvojitú funkciu“.
Ďalším slovom, ktoré možno použiť na označenie zosmiešňovania, je „pahýly“.
Spy Matchers: Existuje niekoľko dohadzovačov, ktoré uspokojujú potrebu interakcie so špiónmi. Zahŕňajú: „ToHaveBeenCalled“ a „toHaveBeenCalledWith“ .
-
- toHaveBeenCalled : Toto sa používa v špecifikácii na určenie, že sa volala závislosť, ktorá sa sledovala.
- toHaveBeenCalledWith : Toto sa používa v špecifikácii na určenie, že závislosť, ktorá sa sleduje, sa volala s určitou sadou parametrov.
Navštívte tu pre podrobný náčrt všetkých konštruktov jazmínu.
vytvorenie reťazcového poľa v jave
Dva spôsoby použitia jasmínu
Existujú dva spôsoby, ako napísať testy na jazmín. Jedným z nich je použitie Jasmine ako samostatnej distribúcie prostredníctvom specRunner a druhým je použitie Jasmine s testovacím bežcom.
Najprv sa pozrime na spustenie testov Jasmine prostredníctvom specRunner.
Ako používať samostatnú distribúciu jasmínu?
Kliknite tu a potom kliknutím na ikonu prevezmite samostatnú distribúciu Jazmín-samostatný .
Rozbaľte súbor do priečinka projektu. Zistíte, že do adresára projektu pridáva tieto adresáre: lib, src a spec; a tiež pridáva tieto súbory: specRunner.html a MIT.LICENSE.
Adresár lib obsahuje knižnicu Jasmine, ktorá vykonáva testy obsiahnuté v testovacích súboroch pridaných do súboru specRunner.html. Súbor specRunner.html vám umožňuje spustiť test a zobraziť výsledok v prehliadači vo formáte webovej stránky, a nie v okne konzoly.
Adresár src obsahuje front-end zdrojové kódy a adresár spec obsahuje testovacie súbory napísané pomocou testovacích balíkov Jasmine. V predvolenom nastavení môžete vidieť niektoré testovacie súbory a súbory v adresároch, ale nebudeme ich používať, do ďalších našich tutoriálov by sme si napísali vlastné testy.
Používanie jazmínu s testovacím bežcom
Toto je druhý spôsob použitia Jasmine, kedy nakonfigurujete testovacieho bežca ako Karma a na spustenie testov ho nakrmíte svojím zdrojovým súborom a súborom testovacích špecifikácií.
Potom môžete buď zobraziť výsledky a generovať správy pomocou Istanbulu, alebo výsledky testu zverejniť na stránke coveralls.io.
Úvod do Jasmine-Jquery
Jasmine-Jquery je uzlový balík, ktorý pomáha pri testovaní front-endových kódov vytvorených pomocou jquery. Svojím spôsobom rozširuje rámec Jasmine tak, aby bol vhodný na front-end testovanie Jquery.
Medzi rozšírenia, ktoré pridáva do rámca Jasmine, patria:
- Sada vlastných porovnávacích nástrojov pre rámec Jquery, napríklad toBeChecked, toBeDisabled, toBeEmpty atď.
- Rozhranie API na prácu s prípravkami HTML, CSS a JSON v našich špecifikáciách.
Teraz je otázka „čo je API?“ API (aplikačné programové rozhranie) je rozhranie, ktoré vám poskytuje prístup k určitým funkciám, ktorých zostavenie od začiatku môže vyžadovať čas a zdroje.
Ďalšou otázkou je, čo sú upínacie prípravky? Svietidlá sú preddefinované stavy objektu, ktoré zvyčajne vytvárame pri písaní testov, aby sme vytvorili základňu (známe a pevné prostredie), proti ktorej sa testy spúšťajú, aby sa výsledky dali opakovať.
Pozri tu ďalšie informácie o vlastných porovnávačoch a rozhraniach API.
Záver
V tomto tutoriáli sme sa pokúsili pochopiť, čo je testovací rámec, a predstavili sme Jasmine ako testovací rámec JavaScriptu. Pozreli sme sa na rôzne konštrukty Jasmine, ktoré je možné použiť na písanie testovacích špecifikácií, a nakoniec sme predstavili Jasmine-Jquery, čo je balíček založený na uzloch, ktorý rozširuje Jasmine o možnosť testovať aplikácie Jquery.
Jedlo so sebou
- Testovací rámec je sada programov alebo balíkov, ktoré uľahčujú testovanie softvéru, aby sa zabezpečila kvalita vyvinutého softvéru.
- Jasmine je vývojový nástroj založený na chovaní, ktorý poskytuje konštrukcie, ktoré uľahčujú písanie testovacích špecifikácií pre aplikácie JavaScript.
- Test-Driven Development je vývojový prístup, pri ktorom najskôr napíšeme testy a potom ich spustíme. Každý test zlyhá pri prvom spustení, pretože funkcia, ktorú používa, ešte nebola napísaná. Potom napíšeme funkcie a znova spustíme testy. Tu niektoré testy zlyhajú a iné vyhovejú. Potom pokračujeme v refaktoringu kódu, kým neprejdú všetky testy.
- Behaviorálne riadený vývojový prístup je vývojový prístup, v ktorom sa zapisujú testy, aby sa zistilo, či sa funkcie softvéru správajú podľa očakávania všetkých zúčastnených strán.
- Jasmine-Jquery je uzlový balík, ktorý pomáha pri testovaní front-endových kódov vytvorených pomocou Jquery.
Ďalšia príručka
V našom nadchádzajúcom tutoriáli preskúmame spôsoby použitia týchto dvoch nástrojov (Jasmine a Karma) na písanie testovacích špecifikácií pre typický projekt. Tiež by sme videli, ako používať ďalšie nástroje, ako je gulp, browserify atď., Ktoré sú potrebné na spustenie našich testov.
Výukový program PREV | NEXT Tutorial
Odporúčané čítanie
- 8 vývojových nástrojov a testovacích rámcov pre najlepší vývoj založený na správaní (BDD)
- Ako sa testeri podieľajú na technikách TDD, BDD a ATDD
- TDD Vs BDD - analyzujte rozdiely pomocou príkladov
- Rámec BDD (Behavior Driven Development): Kompletný návod
- Ako napísať dokument stratégie testovania (so vzorovou šablónou stratégie testovania)
- 10 najlepších nástrojov na testovanie API v roku 2021 (nástroje na testovanie SOAP a REST API)
- Výukový program pre testovanie API: Kompletný sprievodca pre začiatočníkov
- Výukový program pre Python DateTime s príkladmi