První kroky s Jasmine

Obsah
Dnes je vhodné být vývojářem v JavaScriptDá se říci, že je to dokonce vzrušující, protože technologie, které to zahrnují, dost vyzrály, webové prohlížeče jsou standardizovanější a každý den se objevuje více nových věcí, se kterými lze hrát a experimentovat.
JavaScript je zavedený jazyk a web je dnes hlavní platformou, kde jsme viděli vznik jednostránkových aplikací, šíření rámců MVC, jako je AngularJS nebo Backbone.jspomocí JavaScript na straně serveru s Node.js a dokonce i mobilní aplikace vytvořené výhradně pomocí HTML, CSS Y JavaScript s technologiemi jako PhoneGap.
Od svých skromných počátků má JavaScript za úkol sloužit jako jazyk pro manipulaci s daty a jejich ověřování ve formulářích v HTML a v současné době se používá k vytváření výkonných aplikací, které můžeme vidět na webu. Když to vidíme, dá se to říci JavaScript Ušla dlouhá cesta, stejně jako nástroje, které se objevily, aby zajistily, že budeme mít stejnou kvalitu, jako kdybychom byli v jiných jazycích.
Jedním z těchto nástrojů je Jasmín, což není nic jiného než vývojový rámec orientovaný na chování a který nám umožňuje vytvářet automatizované jednotkové testy pro programovací jazyk JavaScript. Než se do tohoto nástroje plně pustíme, podívejme se na pozadí, které vedlo k jeho vývoji, a také na klíčové koncepty, abychom pochopili, jak funguje JavaScript.
Dnes nikdo nepochybuje o síle JavaScriptPři práci na straně klienta však dochází ke komplikacím a jedním ze zřejmých důvodů je, že nemůžeme kontrolovat jeho prováděcí prostředí. Na serveru tento problém nemáme, protože můžeme spustit konkrétní verzi Node.js ale v případě webového prohlížeče nemůžeme uživateli sdělit, aby používal konkrétní verzi Chrome nebo Firefox.
Jazyk JavaScript je definován ve specifikacích ECMAScript takže každý prohlížeč může mít vlastní implementaci prostředí pro jeho spuštění, což způsobí, že mezi nimi budou malé rozdíly nebo chyby. Každý předmět JavaScript je proměnlivý, takže nemáme žádný druh kontroly, který by zabránil modulu přepisovat části ostatních, abychom to ilustrovali, podívejme se na malý segment kódu, kde vidíme, jak snadné je přepsat globální funkci console.log:
 console.log ('test'); console.log = 'break'; console.log ('test');
Podívejme se na odpověď pomocí konzoly, kde můžeme jasně vidět chybu, protože jsme přepsali funkci:

Tento způsob bytí jazyka byl rozhodnutím, které bylo učiněno v jeho designu, protože vývojářům umožnilo přidat do něj chybějící funkce, ale vzhledem k této všestrannosti je relativně snadné dělat chyby, dokonce i novější verze jazyka představila funkce Objekt. Těsnění což tomu zabránilo, ale jeho podpora se rozšířila pouze na několik prohlížečů.
Další problém, se kterým se setkáváme JavaScript je zpracování typů, v jiných jazycích výraz jako '1' + 1 pravděpodobně způsobí chybu, ale v JavaScript to by mělo za následek 11. To může vést k několika těžko hledatelným problémům, například předpokládejme, že máme následující:
 var a = 1, b = '5', c = 4, d = 2; var výsledek = a + b + c * d; console.log (výsledek);
Podívejme se na odpověď prostřednictvím konzoly, když spustíme náš kód v prohlížeči:

Jak vidíme, výsledkem byl řetězec, takže pokud jsme očekávali číslo ve speciální funkci nebo rutině, může to způsobit problém a nalezení této chyby může znamenat ztrátu několika hodin našeho vzácného času vývoje.
Je důležité zmínit, že body, které jsme právě zmínili, nejsou důvodem, proč je nepoužívat JavaScriptJe to prostě vidět, kde to má nějaké slabiny, ale to neznamená, že je to špatný jazyk, můžeme dokonce ujistit, že možnosti, které nám to nabízí, jsou z hlediska vývoje aplikací nekonečné a co je lepší, stále máme nástroje, které my jim pomůžeme s osvědčenými postupy.
Jak jsme zmínili, Jasmín Jedná se o malý rámec, který nám pomáhá s jednotkovými testy v rámci našeho vývoje a který využívá filozofii vývoje orientovaného na chování, který vysvětlíme později, ale než budeme pokračovat, pojďme se podívat na důležitý koncept, a tím je, že jde o jednotkové testy.
Jednotkové testyThe jednotkové testy Jsou to kousky kódu, které testují funkčnost jednotek v kódu naší aplikace, které na začátku této cesty vývojáři zůstala tradiční filozofie, která se místo chování orientovala na vývoj orientovaný na testy.
Proto tvůrci Jasmín restrukturalizují tento tradiční způsob testování, ve kterém vývojář zůstal bez jasného obrazu o tom, kde začít v procesu testování, aniž by věděl, co testovat a jak velký může být testovací modul, nebo dokonce jak by nazvali jeden z těchto testů . Pokud například použijeme filozofii Jasmín K provedení testů předpokládejme, že máme hudební přehrávač, který bude mít následující kritéria přijetí: Vzhledem k tomu, že je přehrávač pozastaven, musí hráč uvést, že byla skladba pozastavena.
Kritérium tedy můžeme vzít a rozdělit následovně:
  • Zadáno (počáteční kontext)
  • Když (Událost nastane)
  • Poté (je provedena akce)
Jasmín nám umožňuje převést výše uvedené do kódu, který bude zapsán tak, aby bez problémů odrážel hodnoty naší aplikace, který může vypadat takto:
 description ("Player", function () {description ("When the song is paused", function () {it ("It must indicate that the song is paused", function () {});});});
Jak vidíme, naše kritéria byla přenesena do Jasmín bez větších potíží, kde můžeme říci, že každé kritérium je přeloženo do jednotkového testu.
Už jsme se mohli podívat na to, jak Jasmín zpracovává kritéria a převádí je do své syntaxe vytvářením jednotkových testů, ale abychom se tam dostali, nejprve se podívejme, jak nejprve získat rámec. Chcete -li to provést, přejděte na stránku projektu a stáhněte si ji:

ZVĚTŠIT

Při jeho rozbalení musíme přejít do složky dist, tam najdeme všechny distribuce Jasmín k dnešnímu dni, kde jej začít používat, musíme vybrat požadovanou distribuci, nejlépe nejnovější a rozbalit ji ve složce našeho projektu, zadat složku a spustit soubor SpecRunner.html:

Jasmín Ve výchozím nastavení obsahuje některé příklady některých jednotkových testů, kde soubor SpecRunner.html má na starosti propojení kódu Jasmine, který obsahuje zdrojové soubory a soubory pro testování, podívejme se na jeho obsah:
 Jasmine Spec Runner v2.2.0 
Jak vidíme, je to docela jednoduché a umožňuje nám definovat základní strukturu pro naše testy, což nám pomáhá, kde začít v tomto světě jednotkových testů. Je samozřejmé, že je dobré podívat se na kód naší distribuce Jasmín abychom se seznámili s tím, jak to funguje.
Je důležité to zmínit Jasmín Nejen, že jsou omezeny na kód napsaný pomocí čistého JavaScriptu, můžeme tyto aplikace postavené pomocí testovat Backbone.js nebo AngularJS, dokonce i jeho univerzálnost jde mnohem dále a umožňuje nám provádět testy na straně serveru v případě, že používáme Node.js.
DoporučeníJasmín Je to rámec, který nám hodně pomáhá ve způsobu jednotkových testů, nicméně koncepty v něm použité nejsou tak jednoduché, podporují ho určité pokročilé postupy JavaScript jako je generování HTML pomocí funkce createDom () Chcete -li do něj vložit prvky a zmínit některé z těchto charakteristik, doporučujeme projít dokumentaci k JavaScript být mnohem více připraven na budoucí návody.
Tímto jsme dokončili tento tutoriál, kde jsme mohli provést první kroky Jasmín, trochu procházet motivací vytváření nástrojů pro testování JavaScript a jak nám vývoj orientovaný na chování pomáhá vytvářet lepší testy a také vidět, jak Jasmín je poměrně flexibilní rámec pro testování, který nám umožňuje použít stejnou instanci k testování všech druhů kódu JavaScript v našich aplikacích.
wave wave wave wave wave