Jasmine Framework Výukový program: Testování jednotek s příkladem
⚡ Chytré shrnutí
Jasmína je řízena chováním JavaFramework pro testování skriptů, který spouští unit testy Node.js bez prohlížeče nebo DOMu s použitím bloků describe, specifikací a expect matcherů pro ověření, zda se každá exportovaná funkce chová tak, jak je zdokumentována.
Co je JasmineJS?
Jasmine je open-source a nejoblíbenější JavaRámec testování knihovny skriptů pro testování jakéhokoli druhu JavaAplikace skriptu. Jasmine dodržuje proceduru Behavior Driven Development (BDD), aby zajistila, že každý řádek JavaPříkaz skriptu je řádně testován na jednotku.
K čemu se Jasmine Framework používá?
Testování je klíčovým prvkem každé aplikace. Pro jednotkové testování Node.js je k dispozici framework s názvem Jasmine. Na začátku roku 2000 existoval framework pro testování JavaScénář aplikace s názvem JsUnit. Later tento framework byl upgradován a nyní je známý jako Jasmine.
Jasmín pomáhá v automatizaci Testování jednotek, což se stalo poměrně klíčovou praxí při vývojiping a nasazení moderních webových aplikací.
V tomto tutoriálu Jasmine se dozvíte, jak získat nastavení prostředí pomocí Jasmine a jak spustit testy Jasmine pro vaši první aplikaci Node.js.
Jasmine pro testování aplikací Node.js
Jasmine je Vývoj řízený chováním (BDD) testovací rámec pro JavaSkript. To ano ne spoléhat na prohlížeče, DOM nebo jiné JavaSkriptovací framework. Je tedy vhodný pro webové stránky, Node.js projekty nebo kdekoli, kde JavaSkript lze spustit. Chcete-li začít používat Jasmine, musíte si nejprve stáhnout a nainstalovat potřebné moduly Jasmine.
Jak nastavit testovací prostředí Jasmine
Dále v tomto tutoriálu o Node.js pro Jasmine budete muset inicializovat své prostředí a zkontrolovat konfigurační soubor Jasmine. Níže uvedené kroky ukazují, jak nastavit Jasmine ve vašem prostředí.
Krok 1) Nainstalujte moduly NPM
Musíte Nainstalujte NPM Modul jasmine pro použití frameworku Jasmine z aplikace Node. Chcete-li nainstalovat modul jasmine-node, spusťte níže uvedený příkaz.
npm install jasmine-node
Poznámka k verzi (2026): Výše uvedený historický příkaz stále funguje, ale jasmínový uzel Modul je v režimu údržby a obsahuje Jasmine 1.3, takže ho ponechte pouze pro starší projekty. Nová práce s Node.js nainstaluje udržovanou verzi. Jasmínový CLI jako dev závislost a volá ji přes npx:
npm install --save-dev jasmine npx jasmine init
Jasmín 6.x je aktuální hlavní řada a podporuje Node.js 20, 22 a 24 a Node.js 24 je verze Active LTS v roce 2026.
Krok 2) Inicializujte prostředí Jasmine
Inicializace projektu – Tímto způsobem Jasmine vytvoří adresář spec a konfigurační soubor JSON. Adresář spec se používá k ukládání všech vašich testovacích souborů. Díky tomu bude Jasmine vědět, kde se všechny vaše testy nacházejí, a poté je bude moci odpovídajícím způsobem spustit. JSON Soubor se používá k ukládání specifických konfiguračních informací o Jasmine.
Pro inicializaci prostředí Jasmine spusťte následující příkaz
jasmine init
Krok 3) Zkontrolujte svůj konfigurační soubor.
Konfigurační soubor bude uložen ve složce spec/support jako jasmine.json. Tento soubor obsahuje výčet zdrojových souborů a souborů specifikací, které by měl Jasmine runner zahrnout.
Níže uvedený snímek obrazovky ukazuje typický příklad souboru jasmine.json pro Jasmine.
- Všimněte si, že zde je specifikován adresář spec. Jak již bylo zmíněno dříve, když jasmine běží, hledá všechny testy v tomto adresáři.
- Další věc, kterou je třeba poznamenat, je parametr spec_files – Ten označuje, že ať už jsou vytvořeny testovací soubory, měly by být připojeny klíčovým slovem 'spec'.
Poznámka ke konfiguraci: v Jasmine 6.x stejný soubor také akceptuje pomocníky, které se načtou jednou před každou specifikací, a env možnosti uchovávání bloků, jako například random a stopSpecOnExpectationFailure. Výchozí glob spec_files je **/*[sS]pec.?(m)jsa jiný soubor lze předat s –konfigurace nebo CESTA_KONFIGURACE_JASMINE proměnná.
Dále v tomto tutoriálu Jasmine framework se naučíme, jak používat Jasmine k testování aplikací Node.js.
Jak používat Jasmine k testování aplikací Node.js
Aby bylo možné použít testování jednotek Jasmine pro aplikace Node.js, je třeba dodržet řadu kroků.
V našem níže uvedeném příkladu definujeme modul, který sčítá 2 čísla, která je třeba otestovat. Poté definujeme samostatný soubor s testovacím kódem a poté pomocí Jasmine otestujeme funkci Add.
Krok 1) Definujte kód, který je třeba otestovat. Budeme definovat funkci, která sečte 2 čísla a vrátí výsledek. Tento kód bude zapsán do souboru s názvem „Add.js“.
Níže uvedený snímek obrazovky ukazuje hotový modul Add.js a stejný kód je opakován jako text pod ním.
var exports=module.exports={}; exports.AddNumber=function(a,b) { return a+b; };
Code Vysvětlení
- Klíčové slovo „exports“ se používá k zajištění toho, aby funkce definované v tomto souboru byly skutečně přístupné pro jiné soubory.
- Potom definujeme funkci s názvem 'AddNumber.' Tato funkce je definována tak, že přebírá 2 parametry aab. Funkce je přidána do modulu „exporty“, aby se funkce stala veřejnou funkcí, ke které mají přístup jiné aplikační moduly.
- Konečně děláme, že naše funkce vrací přidanou hodnotu parametrů.
Krok 2) Dále musíme definovat náš testovací kód Jasmine, který bude použit k otestování funkce „Add“ v souboru Add.js. Níže uvedený kód je třeba umístit do souboru s názvem add-spec.js.
HodnoceníDo testovacího souboru je třeba přidat slovo „spec“, aby ho Jasmine mohla detekovat.
Níže uvedený snímek obrazovky ukazuje stejný soubor se specifikací otevřený v editoru.
var app=require("../Add.js"); describe("Addition",function(){ it("The function should add 2 numbers",function() { var value=app.AddNumber(5,6); expect(value).toBe(11); }); });
Code Vysvětlení
- Nejprve musíme zahrnout náš soubor Add.js, abychom v tomto souboru mohli otestovat funkci 'AddNumber'.
- Nyní vytváříme náš testovací modul. První část testovacího modulu má popsat metodu, která v podstatě dává název našemu testu. V tomto případě je název našeho testu „Addition“.
- Dalším krokem je poskytnout popis našeho testu pomocí metody 'it'.
- Nyní zavoláme naši metodu AddNumber a odešleme jí 2 parametry, 5 a 6. Ty budou předány naší metodě AddNumber v souboru Add.js. Návratová hodnota se poté uloží do proměnné s názvem value.
- Posledním krokem je provedení porovnání neboli samotného testu. Protože očekáváme, že funkce AddNumber vrátí hodnotu 11, definujeme ji pomocí metody expect(value).toBe(očekávaná hodnota).
Výstup
- Pro spuštění testu je potřeba spustit příkaz jasmine.
- Níže uvedený snímek obrazovky ukazuje, že po spuštění příkazu jasmine se zjistí, že existuje test s názvem add-spec.js, a tento test se spustí. Pokud se v testu vyskytnou nějaké chyby, zobrazí se odpovídající informace.
Příklad Add používá jeden matcher, ale Jasmine nabízí celou sadu. V tabulce níže jsou uvedeny ty, které pokrývají téměř každé tvrzení, které napíšete.
Jasmínové párovací návnady, které budete používat nejčastěji
Porovnávání je porovnání, které následuje po expect(). Řetězec .not před libovolným porovnáváním jej invertuje, jako v expect(value).not.toBe(11).
| dohazovači | Co kontroluje | Typické použití |
| být | Přísná identita, stejné srovnání jako === | očekávat(hodnota).toBe(11) |
| toEqual | Hluboká rovnost objektů a polí | očekávat(uživatel).toEqual({id: 1}) |
| toContain | Členství uvnitř pole nebo řetězce | očekávat(soubory).toContain('add-spec.js') |
| k definování | Hodnota není nedefinovaná | očekávat(app.PřidatNumber).toBeDefined() |
| toThrow | Zabalená funkce vyvolá chybu. | očekávat(callAdd).toThrow() |
| toHaveByCalled | Špion byl vyvolán alespoň jednou | očekávat(logger.write).toHaveBeenCalled() |
Dva zvyky zajišťují čitelnost chyb. Používejte toBe pouze pro primitiva a identické reference, protože dva objekty se stejným obsahem nikdy nebudou mít vztah ===. Používejte toEqual pro struktury a přidejte toHaveBeenCalledWith, když argumenty jsou stejně důležité jako samotné volání.
Příprava, demontáž a špioni v Jasmine
Skutečné sady potřebují sdílený stav a dvojité pro pomalé spolupracovníky. Jasmine poskytuje obojí bez jakéhokoli dalšího balíčku.
- před každým a po každém spustit před a po každé specifikaci uvnitř bloku describe, což je přirozené místo pro přestavbu přípravků.
- před všemi a po všem spouštějí se jednou pro celý blok, takže je rezervujte pro nákladné práce, jako je například otevírání spojení.
- spyOn(objekt, 'metoda') nahrazuje skutečnou metodu metodou tracking double; přidejte .and.returnValue() pro kontrolu toho, co odpovídá.
- jasmine.createSpy('jméno') vytvoří samostatný double pro zpětné volání, které nemá žádný objekt, ke kterému by se dalo připojit.
- Asynchronní specifikace může být deklarován jako asynchronní a očekávaný, může vrátit promise nebo může přijmout zpětné volání typu done, které musí být voláno právě jednou.
Špioni se mezi specifikacemi resetují, takže sada nikdy neunikne do dalšího testu zablokovaná metoda. Tato izolace způsobuje, že selhávající specifikace poukazuje na jednu chybu místo na celý řetězec defektů, což je stejná disciplína popsaná v testování jednotky zásady.
Jasmína vs. Mocha vs. Žert
Jasmine je jedním ze tří dominujících rámců JavaTestování skriptů a volba obvykle závisí na tom, kolik kabeláže chcete vlastnit.
| Vzhled | Jasmín | Moka | existuje |
| Tvrzení | Postaven v roce | Přidává se, obvykle Chai | Postaven v roce |
| Špioni a parodisté | Postaven v roce | Přidáno, obvykle Sinon | Postaven v roce |
| Provedení | Sériový | Sériový | Paralelní napříč procesy |
| snímky | Ne | Ne | Ano |
| Společný domov | Angular, prostý Node.js | Flexibilní Node.js stacky | React a moderní bundlery |
Pick Moka když si chcete sestavit vlastní assertační a mocking stack a existuje když paralelní běhy, pokrytí a snímky jsou důležitější než kontrola konfigurace. Jasmine zůstává nejjednodušší možností, která se stále dodává kompletní, a proto je stále běžná v testování automatizace apartmá.




