Výsledky průzkumuStateOfJS: které JS testovací frameworky budou vládnout roku 2019?
Krátký přehled nejčastěji in-poptávaných javascriptových testovacích frameworků, které by v roce 2019 měly zaujmout hlavní místo v javascriptovém ekosystému a s nimiž by se vývojáři měli seznámit
TL;DR: V tomto článku bychom se podívali na nejžádanější javascriptové testovací frameworky a zrevidovali je na základě poznatků o stavu výsledků v oblasti javascriptu.
V zásadě existují tři typy nebo způsoby testování javascriptových aplikací. Prvním způsobem je testování jednotlivých funkcí samostatně nebo nezávisle pomocí jakési metody černé skříňky, kdy jsou vstupy opatřeny již známým výstupem, aby se ověřilo, že dojde k očekávaným výsledkům, tento způsob se nazývá Unit Testing. Proces, kdy se následně testuje celá komponenta nebo aplikace, aby se zjistilo, zda jsou výstupem očekávané výsledky, se nazývá integrační testování. Třetí způsob je známý jako testování uživatelského rozhraní, používá se v podstatě k testování aplikace pomocí ovládání prohlížeče bez velkého důrazu na vnitřní fungování, aby se otestovala očekávání.
Co je StateOfJS
State of JS je v podstatě každoroční průzkum všeho, co se týká JavaScriptu, kde se zaznamenávají názory vývojářů, kteří se průzkumu účastní, a krásně vizualizují, aby se ukázaly poznatky, které znamenají stav JavaScriptu v daném roce.
Údaje se týkají frameworků pro vývoj frontendových webů, databází, správy stavu, vztahů mezi frameworky, příjmu a snadnosti použití, jazyků, které se kompilují do JavaScriptu, mobilních frameworků, nástrojů pro sestavení, nástrojů pro testování JavaScriptu a spousty dalších. Jedná se o velmi rozsáhlý průzkum JavaScriptu, který v roce 2016 zahájil Sacha Greif a několik dalších pomocníků, a nyní na něj v posledním vydání odpovědělo více než 20 000 vývojářů.
Proč StateOfJS?
Ano, State of JS je vlastně vůbec první průzkum vývojářů zaměřený pouze na JavaScript, který je všeobecně respektován, pokud jde o komunitu JavaScriptu. Existují i další velmi populární průzkumy, jako je průzkum vývojářů stackoverflow s více než 100 000 respondenty a dokonce i zpráva Jetbrain State of Developer Ecosystem Report s více než 6 000 respondenty, my se však dnes zaměříme na průzkum State of js.
Podívejme se na rychlý přehled těchto testovacích frameworků v pořadí, v jakém byly zobrazeny v průzkumu state of javascript 2018.
Tip: Při práci s komponentami (React, ES6 atd.) používejte Bit, abyste je mohli snadno sdílet, organizovat a opakovaně používat mezi aplikacemi – a vytvářet tak rychleji. Můžete jej také použít k individuálnímu testování komponent v cloudu před jejich použitím. Vyzkoušejte to.
Jest
Jest, pravděpodobně jeden z nejpopulárnějších javascriptových testovacích frameworků s více než 22 000 ⭐️ na githubu, byl vytvořen a je neustále udržován týmem společnosti Facebook. Jedná se o javascriptový testovací framework s nulovou konfigurací doporučený Reactem a také nejjednodušší na používání. Jest má v roce 2018 velmi působivou míru přijetí javascriptovou komunitou.
Je velmi výkonný, s jednoznačným a pohodlným uživatelským rozhraním. Dodává se se spy a mocky a ve výchozím nastavení vytváří testovací globály. Umožňuje také testování pomocí snapshotů a dodává se s vestavěným nástrojem pro pokrytí kódu. Je neuvěřitelně rychlý a je jednou z nejlepších možností pro začátečníky, kteří by se chtěli pustit do testování svého javascriptového kódu. Na internetu je také k dispozici spousta zdrojů o Jestu.
Mocha
Mocha s více než 16 000 ⭐️na githubu je již několik let nejpoužívanějším javascriptovým testovacím frameworkem. Používá se s asercemi třetích stran, mockingem a špionážními nástroji jako chai nebo enzyme. Kromě masivního ekosystému má Mocha dobře zavedené možnosti se skvělou dokumentací. Je velmi flexibilní a otevřený mnoha rozšířením.
Je sice vidět malý odliv dominance od Mochy k Jest, ale Mocha je stále nejpoužívanějším testovacím nástrojem a nejzávislejší knihovnou a javascriptoví vývojáři se jí zatím nevzdávají hlavně kvůli bohaté svobodě a flexibilitě, které s sebou přináší používání Mochy. Komunita kolem nástroje Mocha je velmi masivní a existuje spousta zdrojů o jeho použití a případech použití.
Jasmine
Jasmine je všeobecně známý jako testovací framework, který je vývojářům Angularu oficiálně doporučován k používání, framework Jest byl postaven na základě Jasmine. S více než 14 000 ⭐️na githubu je Jasmine jedním z nejpopulárnějších frameworků pro testování javascriptu, je také jedním z nejstarších a má nejvíce zdrojů a podpory komunity. Vývojáři Angularu by ho mohli snadno používat a integrovat, protože oficiální dokumentace Angularu také doporučuje používat Jasmine. Je velmi snadné s ním začít, to je pravděpodobně jedna z věcí, která inspirovala Jest. V roce 2018 podle průzkumu vidíme posun v používání Jasmine směrem k Jest a také více aplikací React je testováno pomocí Jasmine ve srovnání s Angular.
Je velmi důležité si uvědomit, že testy pro angulární aplikace lze snadno spouštět pomocí Jest a jde prakticky jen o preference.
Karma
Karma s více než 10 000 ⭐️na githubu je jakýsi javascriptový testovací framework pro obecné použití. Testy můžete spouštět v prohlížeči nebo v prostředí podobném prohlížeči, jako je jsdom. Existuje podpora pro nástroje kontinuální integrace jako travis a jenkins, testy lze spouštět na reálných zařízeních nebo na bezhlavé instanci phantomJs. Je agnostický vůči frameworkům, takže můžete své testy popsat pomocí Jasmine, Mocha nebo si napsat jednoduchý adaptér pro libovolný framework.
Testy lze také spouštět vzdáleně z terminálu nebo IDE nebo pomocí služeb jako BrowserStack.
AVA
AVA s více než 15 000 ⭐️na githubu je v současnosti nejminimalističtější javascriptový testovací framework, který spouští testy paralelně. AVA je test runner pro Node.js se stručným API, podrobným chybovým výstupem, objetí nových jazykových funkcí a izolací procesů, které vám umožní psát testy efektivněji.
Podporuje snapshot testing a typescript a spouští testy v režimu sledování, takže je opravdu rychlý; poskytuje také izolované prostředí pro každý testovací soubor. Je snadné s ním začít a má sbírku zdrojů dostupných online.
Cypress
S více než 9 000 ⭐️na githubu je Cypress velmi rychlý a spolehlivý nástroj pro testování javascriptů. V podstatě injektuje testy do webové aplikace, poskytuje velmi přehlednou a rozsáhlou dokumentaci a neustále konkuruje dalšímu testovacímu frameworku TestCafe.
Dodává se také s podporou Mocha a má opravdu dobrý způsob logování výsledků testů v dashboardu a snadné ladění. Je to testovací framework, na který je třeba si dát pozor v roce 2019, s masivně rostoucí mírou přijetí.
Puppeteer
S více než 43 000 ⭐️na githubu je Puppeteer vytvořený týmem ve společnosti Google knihovnou Node, která poskytuje vysokoúrovňové API pro ovládání Chrome nebo Chromium přes protokol DevTools. Puppeteer ve výchozím nastavení běží bezhlavě, ale lze jej nakonfigurovat tak, aby běžel v plném (bezhlavém) Chromu nebo Chromiu.
Je to novinka na testovací scéně, ale už ji používá spousta vývojářů (díky Googlu!) Je také docela rychlá, protože je nativní, v současné době nepodporuje mnoho rozšíření, ale budoucnost je opravdu světlá a slibná.
QUnit
S více než 3700 ⭐️na githubu je QUnit unit testing framework v JavaScriptu, který byl původně vyvinut pro testování jQuery, jQuery UI a jQuery Mobile, je to obecný framework pro testování jakéhokoli kódu JavaScriptu. Podporuje prostředí na straně klienta ve webových prohlížečích i na straně serveru.
QUnit je podobný jiným frameworkům pro unit testing, jako je JUnit, ale využívá funkce, které poskytuje JavaScript, a pomáhá s testováním kódu v prohlížeči, například vestavěnou podporu asynchronnosti a zpracování výjimek.
Chai
S 6000 ⭐️na githubu je Chai knihovna tvrzení pro vývoj řízený chováním a vývoj řízený testy, podobná vestavěné knihovně assert
Node. Výrazně usnadňuje testování tím, že vám poskytuje spoustu asercí, které můžete spouštět proti svému kódu. Dodává se s podporou jakéhokoli jiného testovacího frameworku, například Mocha.
TestCafe
TestCafe s více než 5900 ⭐️na githubu, je uzlový framework používaný pro testování javascriptových aplikací od konce ke konci. Dodává se s podporou typescriptu a má opravdu pěkné rozhraní pro zaznamenávání výsledků testů.
Běží ve všech populárních prostředích včetně Windows, MacOS a Linuxu. Podporuje desktopové, mobilní, vzdálené a cloudové prohlížeče (UI nebo headless). Má také velmi propracovanou dokumentaci a rostoucí komunitu.
Honorable Mentions
Protractor
Závěr
.