jasmine framework tutorial including jasmine jquery with examples
Tento článek se týká rámce pro testování jasmínu a jeho konstrukcí. Zjistěte také informace o balíčku Jasmine-Jquery, který rozšiřuje Jasmine o testování aplikací Jquery:
Dozvěděli jsme se vše o Karma v našem předchozím tutoriálu v této sérii.
V tomto tutoriálu se naučíme, jak používat Jasmine k psaní testů pro webovou aplikaci JavaScriptu, a také se seznámíme s použitím uzlového balíčku Jasmine-Jquery k testování webové aplikace Jquery.
Zde se zaměříme hlavně na základní jasmínové konstrukce pro psaní testů.
Otázky a odpovědi na rozhovor pro nováčky
Začněme!!
Co se naučíte:
Co jsou to testovací rámce?
Testovací rámce jsou sady programů nebo balíčků, které usnadňují testování jiného programu, aby byla zajištěna jeho kvalita. Každá programovací platforma má svůj vlastní testovací rámec, jak jste se určitě dozvěděli z našeho předchozího tutoriálu.
Na libovolném softwarovém systému lze provést různé sady testů. Příklady z těchto testů patří testování jednotek, testování typu end to end (e2e) atd. Zkontrolujte tady Více podrobností.
Příklady testovacích frameworků pro JavaScriptové aplikace zahrnují Mocha, Jasmine, intern, jest, Qunit atd.
Úvod do Jasmine Framework
V současném scénáři jsou k dispozici různé vývojové přístupy. Z nich dva nejpopulárnější vývojové přístupy zahrnují Test-Driven Development (TDD) a Behavior Driven Development (BDD).
Test-Driven Development je vývojový přístup, při kterém nejprve napíšeme testy a poté je spustíme. Každý test selže při svém prvním spuštění, protože funkce, které používá, ještě nebyly napsány.
Poté napíšeme funkce a znovu spustíme testy. Zde některé testy selžou a ostatní projdou. Pokračujeme v refaktoringu kódu, aby všechny testy prošly.
Vývoj založený na chování také sleduje stejný přístup. Jediný rozdíl je v tom, že BDD je napsáno tak, aby uspokojilo majitele softwaru (orientovaného na zákazníka / podnikání), tj. Aby splňovalo funkce softwaru s obchodními požadavky nebo očekávaným chováním.
Zatímco TDD je napsáno tak, aby uspokojilo vývojáře softwaru, aby bylo zajištěno, že softwarové funkce, které se používají při vytváření funkcí, přinášejí přesné výsledky, stabilní a spolehlivé.
Vidět tady vědět více o TDD vs BDD.
Jasmine je rámec pro testování JavaScriptu, který je založen na chování, což usnadňuje psaní testů a nezávisí na žádném jiném rámci.
Existují dva způsoby, jak použít Jasmine k psaní testů. Jedním ze způsobů je použití samostatné verze dodávané se souborem specRunner.html (který zobrazuje výsledky testů v prohlížeči). Druhým způsobem je jednoduše nainstalovat Jasmine, napsat své testy a spustit je pomocí testovacího běžce, jako je Karma, aby se výsledky zobrazily v okně konzoly.
V našem nadcházejícím tutoriálu bychom se podívali na oba způsoby použití Jasmine.
Základní konstrukce jasmínu pro psaní testů
Níže jsou uvedeny různé konstrukty Jasmine pro psaní testů.
Uvidíme!!
# 1) popisuje: Tato konstrukce se používá k napsání testovací sady. Testovací sada je soubor několika testů. ‘Description‘ je funkce sama o sobě, která má dva parametry: Název sady a funkce .
Parametr funkce obsahuje kolekci testů seskupených pod testovací sadou.
# 2) to: Tato konstrukce se používá k napsání testovací specifikace. Testovací specifikace je sada konstruktů, které testují konkrétní nebo nejminutovější očekávání systému.
Stejně jako popis konstrukce má také dva parametry: Název testu a funkce, která obsahuje tvrzení hodnotící, zda je očekávání splněno nebo ne.
# 3) očekávejte : Tento konstrukt pomáhá při testování, zda jsou očekávání od softwarového systému splněna nebo ne.
Trvá parametr zvaný skutečný (což je výsledek, který softwarový systém vrací) a poté je zřetězený s jinou konstrukcí zvanou porovnávač (očekávaný výsledek).
# 4) Zápasy : Toto je kolekce konstruktů, ke kterým je očekávaný konstrukt připoután. Určuje, zda je očekávání splněno či nikoli.
Tyto konstrukce berou očekávanou hodnotu nejbližšího prováděného testu a porovnávají ho se skutečnou hodnotou získanou při provádění testu. Klepněte na tady pro úplný seznam konstruktů srovnávače jasmínů
# 5) beforeEach : Toto je globální konstrukce, kterou poskytuje Jasmine, aby vám pomohla udržet vaše testy SUCHÉ (neopakujte se). Tento konstrukt se obvykle používá v parametru funkce konstruktu description.
Jakýkoli kód uvnitř se spustí jednou, než se spustí specifikace pod sadami. Proto by zde měl být umístěn jakýkoli kód, který si přejete spustit jako první před všemi specifikacemi v sadě.
# 6) afterEach: Tento konstrukt je stejný jako beforeEach a rozdíl je v tom, že kód, který obsahuje, je spuštěn po každém kódu, jakmile je spuštěn konstrukt popisu.
# 7) toto : Tento konstrukt je prázdný objekt, který lze použít ke sdílení hodnot napříč konstrukcemi ‘beforeEach’, ‘afterEach’ a ‘it‘ v libovolných testovacích sadách. Každá testovací sada má svůj vlastní objekt a před provedením testovacích sad se objekt resetuje na prázdný.
# 8) xdescribe : Tato konstrukce se používá k deaktivaci softwarových sad. Jednoduše řekne testovacímu běžci, aby přeskočil testovací sadu, a proto se jeho výsledek nezobrazí a neuvažuje.
# 9) hit : Tato konstrukce se používá k označení spec v sadě jako čekající spec. Čekající specifikace je specifikace, která se nespustí, ale ve výsledku testu bude zobrazena jako nevyřízená.
Také pokud je v jakémkoli spec vyvolána funkce čekající na vyřízení, pak je spec označen jako čekající spec. Jakákoli specifikace deklarovaná bez těla funkce je také označena jako nevyřízená.
# 10) spyOn : Tato konstrukce se používá k vytvoření jasmínového špiona. Špioni jsou falešní. Mocks jsou falešné objekty vytvořené tak, aby reprezentovaly nebo napodobovaly skutečný objekt. Vysmívat se musí, aby se zabránilo režijním nákladům na vytvoření skutečného objektu, který představují.
Podstatou testování jednotky kódu je zjistit, jak se funkce chová za několika podmínek nezávisle na ostatních připojených jednotkách nebo k ní budou připojeny.
nejlepší web pro sledování anime online
Provádíme tedy testování front-endových jednotek, abychom zjistili, jak se bude jednotka front-endu našeho softwarového produktu chovat nezávisle na ostatních front-end jednotkách, které budou připojeny nebo jsou k ní připojeny.
Během tohoto testu provádíme volání různých argumentů a funkcí, které mohou záviset na dalších funkcích a objektech, jako jsou síťová připojení, zdroje dat a soubory.
Abychom těmto závislostem vyhověli (abychom mohli provádět testování front-endových jednotek), je nutné zpřístupnit požadované zdroje. Proto přijímáme falešné zprávy, abychom napodobili objekty reálného světa a vyhnuli se režijním nákladům na jejich skutečné vytvoření.
Všimněte si, že na jednoduché úrovni se spyOn používá k testování, zda se skutečně volá závislá funkce, a tato závislá funkce může být jen jednoduchá funkce, která je definována na objektu, který špehujeme.
Funkce spyOn má dva parametry: sledovaný objekt a závislost, kterou obsahuje, která je zkontrolována, aby se ujistil, že ji naše funkce volá.
V sadě nebo specifikaci, ve které je definována, existují špióni. Poté, co se sada nebo spec spustí, špión přestane existovat.
# 11) createSpy: Tento konstrukt slouží stejnému účelu jako spyOn, ale rozdíl je v tom, že tato funkce umožňuje nahradit závislou funkci falešnou pro testování.
Proč to musím dělat? To je užitečné, když původní závislost závisí také na ostatních prostředcích, které nejsou k dispozici v kontextu testu.
Tato funkce je přístupná pomocí objektu Jasmine s tečkou, tj. Jasmine.createSpy (parametry). Trvá to jen jeden parametr, kterým je řetězec představující název závislosti, pro kterou vytváříme falešný výraz.
Všimněte si, že po vytvoření špióna se špión při prvním volání vrátí nedefinovaný, protože první volání je považováno za jeho trénink. Poté po následných voláních funkce vrátí skutečnou hodnotu. Podívejte se níže na další podrobnosti.
Funkce dvojí funkce Jasmine Test
Konstrukce spyOn a createSpy umožňují vytváření falešných zpráv (pro závislost). To není nic jiného než testování dvou funkcí v jednom testu, tedy prohlášení „testovat dvojitou funkci“.
Druhé slovo, které lze použít k označení falešných zpráv, je „pahýly“.
Spy Matchers: Existuje několik dohazovačů, které uspokojují potřebu interakce se špiony. Obsahují: „ToHaveBeenCalled“ a „toHaveBeenCalledWith“ .
-
- toHaveBeenCalled : Toto se používá ve specifikaci k určení, že byla volána sledovaná závislost.
- toHaveBeenCalledWith : Toto se používá ve specifikaci k určení, že sledovaná závislost byla volána s určitou sadou parametrů.
Návštěva tady pro podrobný přehled všech konstrukcí jasmínu.
zdarma recenze převaděče youtube na mp3
Dva způsoby, jak používat jasmín
Existují dva způsoby, jak psát testy jasmínu. Jedním z nich je použití Jasmine jako samostatné distribuce prostřednictvím specRunner a druhé je použití Jasmine s testovacím běžecem.
Nejprve se podívejme na spuštění testů Jasmine prostřednictvím specRunner.
Jak používat samostatnou distribuci jasmínu?
Klepněte na tady a poté stáhněte samostatnou distribuci kliknutím na Jasmín - samostatný .
Rozbalte soubor do složky projektu. Zjistíte, že do adresáře projektu přidá tyto adresáře: lib, src a spec; a také přidá tyto soubory: specRunner.html a MIT.LICENSE.
Adresář lib obsahuje knihovnu Jasmine, která provádí testy obsažené v testovacích souborech přidaných do souboru specRunner.html. Soubor specRunner.html umožňuje spustit test a zobrazit výsledek v prohlížeči ve formátu webové stránky, nikoli v okně konzoly.
Adresář src obsahuje front-end zdrojové kódy a adresář spec obsahuje testovací soubory zapsané pomocí testovacích sad Jasmine. Ve výchozím nastavení můžete vidět některé testovací sady a soubory v adresářích, ale nebudeme je používat, psali bychom vlastní testy v našich dalších cvičeních.
Používání jasmínu s testovacím běžecem
Toto je druhý způsob použití Jasmine, kdy nakonfigurujete testovacího běžce, jako je Karma, a nakrmíte jej zdrojovým souborem a souborem testovacích specifikací pro spuštění testů.
Potom můžete buď zobrazit výsledky a generovat zprávy pomocí Istanbulu, nebo výsledky testu publikovat v souboru coveralls.io.
Úvod do Jasmine-Jquery
Jasmine-Jquery je balíček uzlů, který pomáhá při testování front-endových kódů vytvořených pomocí jquery. Svým způsobem rozšiřuje rámec Jasmine tak, aby byl vhodný pro front-end testování Jquery.
Mezi rozšíření, která přidává do rámce Jasmine, patří:
- Sada vlastních porovnávačů pro rámec Jquery, například toBeChecked, toBeDisabled, toBeEmpty atd.
- API pro zpracování přípravků HTML, CSS a JSON v našich specifikacích.
Nyní je otázkou „co je API?“ API (aplikační programovací rozhraní) je rozhraní, které vám uděluje přístup k určitým funkcím, jejichž sestavení od začátku může vyžadovat čas a prostředky.
Další otázkou je, co jsou příslušenství? Svítidla jsou předdefinované stavy objektu, které obvykle vytváříme při psaní testů, abychom vytvořili základní linii (dobře známé a pevné prostředí), proti které jsou testy spouštěny, aby byly výsledky opakovatelné.
Vidět tady pro více informací o vlastních srovnávacích programech a API.
Závěr
V tomto kurzu jsme se pokusili pochopit, co je testovací framework, a představili jsme Jasmine jako testovací framework JavaScriptu. Podívali jsme se na různé konstrukty Jasmine, které lze použít k psaní testovacích specifikací, a nakonec jsme představili Jasmine-Jquery, což je balíček založený na uzlech, který rozšiřuje Jasmine tak, aby mohl testovat aplikace Jquery.
Jídlo s sebou
- Rámec testování je sada programů nebo balíků, které usnadňují testování softwaru, aby byla zajištěna kvalita vyvíjeného softwaru.
- Jasmine je vývojový nástroj založený na chování, který poskytuje konstrukce, které usnadňují psaní testovacích specifikací pro aplikace JavaScriptu.
- Test-Driven Development je vývojový přístup, při kterém nejprve napíšeme testy a poté je spustíme. Každý test selže při svém prvním spuštění, protože funkce, kterou používá, ještě nebyla napsána. Poté napíšeme funkce a znovu spustíme testy. Zde některé testy selžou a jiné projdou. Poté udržujeme refaktoring kódu, dokud neprojdou všechny testy.
- Vývojově orientovaný přístup založený na chování je vývojový přístup, ve kterém se zapisují testy, aby se zjistilo, zda se funkce softwaru chovají podle očekávání všech zúčastněných stran.
- Jasmine-Jquery je balíček uzlů, který pomáhá při testování front-endových kódů vytvořených pomocí Jquery.
Další výuka
V našem nadcházejícím tutoriálu prozkoumáme způsoby použití těchto dvou nástrojů (Jasmine a Karma) k psaní testovacích specifikací pro typický projekt. Také bychom viděli, jak používat další nástroje, jako je gulp, browserify atd., Které jsou nutné k tomu, aby naše testy byly funkční.
Výukový program PREV | DALŠÍ výuka
Doporučené čtení
- 8 nástrojů pro nejlepší vývoj na základě chování (BDD) a testovací rámce
- Jak se testeři účastní technik TDD, BDD a ATDD
- TDD Vs BDD - analyzujte rozdíly pomocí příkladů
- Rámec BDD (Behavior Driven Development): Kompletní výukový program
- Jak psát dokument strategie testování (se vzorem šablony strategie testování)
- 10 nejlepších nástrojů pro testování API v roce 2021 (nástroje pro testování API SOAP a REST)
- Výukový program pro testování API: Kompletní průvodce pro začátečníky
- Výukový program Python DateTime s příklady