StateOfJS felmérés eredményei: mely JS tesztelési keretrendszerek fogják uralni 2019-et?
Egy gyors áttekintés a leginkább in-keresett javascript tesztelési keretrendszerek, amelyek a javascript ökoszisztémában a középpontba kerülnének, és amelyekkel a fejlesztőknek 2019-ben érdemes megismerkedniük
TL;DR: ebben a cikkben megnéznénk a legkeresettebb javascript tesztelési keretrendszereket és áttekintjük őket a javascript eredmények állapotának meglátásai alapján.
Általában alapvetően három típus vagy mód van arra, hogy egy javascript alkalmazást teszteljünk. Az első mód az egyes funkciók külön-külön vagy egymástól függetlenül történő tesztelése egyfajta blackbox módszerrel, ahol a bemeneteket egy már ismert kimenettel adjuk meg, hogy megbizonyosodjunk a várt eredményekről, ezt nevezzük egységtesztelésnek. A teljes komponens vagy alkalmazás tesztelésének folyamatát, amely során a várt eredmények megjelenését vizsgáljuk, integrációs tesztelésnek nevezzük. A harmadik módot felhasználói felület tesztelésnek nevezik, ez alapvetően a böngésző vezérlésével teszteli az alkalmazást anélkül, hogy nagy hangsúlyt fektetne a belső működésre az elvárások tesztelése érdekében.
Mi a StateOfJS
A State of JS alapvetően egy éves felmérés minden JavaScriptről, ahol a felmérésben részt vevő fejlesztők véleményét rögzítik és gyönyörűen vizualizálják, hogy megmutassák a JavaScript adott évi állapotát jelző meglátásokat.
Az adatpontok kiterjednek a frontend webfejlesztési keretrendszerekre, az adatbázisokra, az állapotkezelésre, a keretrendszerek közötti kapcsolatokra, a fogadtatásra és a könnyű használatra, a JavaScriptre fordítható nyelvekre, a mobil keretrendszerekre, a build eszközökre, a JavaScript tesztelési eszközökre és még sok minden másra. Ez egy nagyon átfogó JavaScript-felmérés, amelyet 2016-ban Sacha Greif és néhány más segítő indított el, és most a legutóbbi kiadásban több mint 20 000 fejlesztő válasza érkezett.
Miért StateOfJS?
Igen, a State of JS valójában a legelső, kizárólag JavaScript fejlesztőkre vonatkozó felmérés, amelyet a JavaScript közösség tekintetében mindenki elismer. Vannak más nagyon népszerű felmérések is, mint például a stackoverflow fejlesztői felmérése több mint 100.000 válaszadóval, vagy akár a Jetbrain State of Developer Ecosystem Reportja több mint 6.000 válaszadóval, mi azonban ma a State of js felmérésre fogunk koncentrálni.
Nézzük meg gyorsan ezeket a tesztelési keretrendszereket abban a sorrendben, ahogyan azokat a state of javascript 2018 felmérésben megjelenítették.
Tipp: Ha komponensekkel (React, ES6 stb.) dolgozol, használd a Bit-et, hogy könnyen megoszthasd, rendszerezd és újrafelhasználd őket az alkalmazások között – a gyorsabb építés érdekében. A komponensek egyedi tesztelésére is használhatod a felhőben, mielőtt használnád őket. Próbáld ki.
Jest
Jest, vitathatatlanul az egyik legnépszerűbb javascript tesztelési keretrendszer, több mint 22.000 ⭐️ a githubon, a Facebook csapata építette és folyamatosan karbantartja. A React által ajánlott, konfigurációmentes javascript tesztelési keretrendszer, és a legkönnyebben használható is. A Jest 2018-ban nagyon meggyőző elfogadottsággal rendelkezik a javascript közösség körében.
Nagyon teljesítőképes, egyértelmű és kényelmes felhasználói felülettel rendelkezik. Kémekkel és mockokkal szállítják, és alapértelmezés szerint tesztglobálokat hoz létre. Snapshot tesztelést is biztosít, és beépített kódlefedettségi eszközzel szállítja. Hihetetlenül gyors, és az egyik legjobb választás kezdőknek, akik javascript kódjuk tesztelésébe szeretnének belevágni. A Jestről rengeteg forrás is elérhető az interneten.
Mocha
A githubon több mint 16.000 ⭐️al rendelkező Mocha évek óta a leggyakrabban használt javascript tesztelési keretrendszer. Olyan harmadik féltől származó assertionokkal, mocking és kémkedő eszközökkel együtt használják, mint a chai vagy az enzyme. A masszív ökoszisztéma mellett a Mocha jól bevált lehetőségekkel rendelkezik, nagyszerű dokumentációval. Nagyon rugalmas és nyitott rengeteg bővítésre.
Bár látjuk, hogy a dominancia egy kicsit elsodródik a Mochától a Jest felé, de a Mocha még mindig a leggyakrabban használt tesztelési eszköz és a leginkább függő könyvtár, és a javascript fejlesztők még nem engedik el, főleg a rengeteg szabadság és rugalmasság miatt, ami a Mocha használatával jár. A Mocha közösség nagyon masszív, és rengeteg forrás létezik a használatról és a felhasználási esetekről.
Jasmine
A Jasmine általánosan ismert, mint a tesztelési keretrendszer, amelyet az Angular hivatalosan is ajánl a fejlesztők számára, a Jest keretrendszer a Jasmine-ra épül. Több mint 14.000 ⭐️on githubon a Jasmine az egyik legnépszerűbb keretrendszer a javascript teszteléséhez, ez is az egyik legrégebbi túl a legtöbb erőforrással és közösségi támogatással. Az Angular fejlesztők könnyen használhatnák és integrálhatnák, hiszen az Angular hivatalos dokumentációja is a Jasmine használatát javasolja. Nagyon könnyen el lehet kezdeni, valószínűleg ez az egyik dolog, ami a Jestet inspirálta. A felmérés szerint 2018-ban a Jasmine használatában eltolódást látunk a Jest felé, és azt is látjuk, hogy több react alkalmazást tesztelnek Jasmine-nal, mint angularral.
Nagyon fontos megjegyezni, hogy az Angular alkalmazások tesztjei könnyen futtathatók Jesttel és gyakorlatilag csak a preferenciákról van szó.
Karma
A több mint 10.000 ⭐️on githubon található Karma egyfajta általános felhasználású javascript tesztelő keretrendszer. A teszteket futtathatod a böngésződben vagy böngészőszerű környezetben, mint a jsdom. Támogatja az olyan folyamatos integrációs eszközöket, mint a travis és a jenkins, a tesztek futtathatók valós eszközökön vagy headless phantomJs példányon. Keretrendszer-agnosztikus, így leírhatod a tesztjeidet Jasmine-nal, Mochával vagy írhatsz egy egyszerű adaptert bármilyen keretrendszerhez, amit szeretnél.
A tesztek távolról is futtathatók a terminálodból vagy IDE-ből vagy olyan szolgáltatások segítségével, mint a BrowserStack.
AVA
A githubon több mint 15.000 ⭐️al rendelkezőAVA jelenleg a legminimalistább javascript tesztelési keretrendszer, amely párhuzamosan futtatja a teszteket. Az AVA egy Node.js tesztfutó tömör API-val, részletes hibakimenettel, új nyelvi funkciók ölelésével és folyamatszigeteléssel, amelyekkel hatékonyabban írhatsz teszteket.
Teszteket snapshot tesztelés és typescript támogatással szállítja, és a teszteket watch módban futtatja, így igazán gyors; emellett izolált környezetet biztosít minden egyes tesztfájlhoz. Könnyen elkezdhető, és online elérhető forrásgyűjteménye van.
Cypress
A Cypress egy nagyon gyors és megbízható javascript tesztelő eszköz, több mint 9000 ⭐️al a githubon. Alapvetően teszteket injektál egy webes alkalmazásba, nagyon világos és részletes dokumentációt biztosít, és állandó versenyben van egy másik tesztelési keretrendszerrel, a TestCafe-vel.
A Mocha támogatással is szállítja, és nagyon jó módja van a teszteredmények naplózásának egy műszerfalon és a könnyű hibakeresésnek. Ez az a tesztelési keretrendszer, amire 2019-ben figyelni kell, mivel az elfogadottsága masszívan növekszik.
Puppeteer
A githubon több mint 43.000 ⭐️al rendelkező, a Google csapata által épített Puppeteer egy Node könyvtár, amely egy magas szintű API-t biztosít a Chrome vagy Chromium vezérléséhez a DevTools protokollon keresztül. A Puppeteer alapértelmezés szerint headless fut, de beállítható, hogy teljes (nem headless) Chrome vagy Chromium fusson.
Új a tesztelési színtéren, de már rengeteg fejlesztő használja (köszi google!) Elég gyors is, mivel natív, jelenleg nem támogat sok bővítményt, de a jövő igazán fényes és ígéretes.
QUnit
Mivel több mint 3700 ⭐️on github, a QUnit egy JavaScript egységtesztelő keretrendszer, amelyet eredetileg a jQuery, jQuery UI és jQuery Mobile tesztelésére fejlesztettek ki, ez egy általános keretrendszer bármilyen JavaScript kód tesztelésére. Támogatja a webböngészők kliensoldali környezeteit és a szerveroldali környezeteket.
A QUnit hasonló más egységtesztelő keretrendszerekhez, mint például a JUnit, de kihasználja a JavaScript által biztosított funkciókat, és segít a kód böngészőben történő tesztelésében, mint például az aszinkronitás és a kivételkezelés beépített támogatása.
Chai
A githubon 6000 ⭐️al rendelkező Chai egy viselkedésvezérelt fejlesztési és tesztvezérelt fejlesztési asszertív könyvtár, hasonlóan a Node beépített assert
-hez. Sokkal egyszerűbbé teszi a tesztelést azzal, hogy rengeteg assertiont ad, amelyeket lefuttathatsz a kódoddal szemben. Bármely más tesztelési keretrendszer, például a Mocha támogatásával szállítja.
TestCafe
TestCafe több mint 5900 ⭐️on github, egy node keretrendszer, amelyet végponttól végpontig javascript alkalmazások tesztelésére használnak. TypeScript-támogatással szállítják, és egy nagyon szép felülettel rendelkezik a teszteredmények naplózásához.
Az összes népszerű környezetben fut, beleértve a Windows, MacOS és Linux rendszereket. Támogatja az asztali, mobil, távoli és felhő böngészőket (UI vagy headless). Nagyon kidolgozott dokumentációval és növekvő közösséggel is rendelkezik.