StateOfJS-tutkimuksen tulokset: Mitkä JS-testauskehykset hallitsevat vuotta 2019?
Lyhyt yleiskatsaus kaikkein in-kysytyimmät javascript-testauskehykset, jotka nousisivat javascript-ekosysteemissä keskiöön ja joihin kehittäjien tulisi tutustua vuonna 2019
TL;DR: tässä artikkelissa tarkasteltaisiin kysytyimpiä javascript-testauskehyksiä ja tarkasteltaisiin niitä javascript-tulosten tilasta saatujen oivallusten perusteella.
Yleisesti javascript-sovellusta voidaan testata periaatteessa kolmella eri tavalla. Ensimmäinen tapa on testata yksittäisiä toimintoja erikseen tai itsenäisesti eräänlaisella blackbox-menetelmällä, jossa syötteet annetaan jo tunnetun tulosteen kanssa, jotta voidaan varmistaa, että odotetut tulokset tuotetaan, tätä kutsutaan yksikkötestaukseksi. Prosessia, jossa testataan koko komponentti tai sovellus sen varmistamiseksi, että odotetut tulokset tuotetaan, kutsutaan integraatiotestaukseksi. Kolmas tapa tunnetaan nimellä käyttöliittymätestaus, sitä käytetään periaatteessa sovelluksen testaamiseen selaimen ohjauksella ilman, että odotusten testaamiseksi painotetaan juurikaan sisäistä toimintaa.
Mikä on StateOfJS
State of JS on periaatteessa vuosittainen tutkimus kaikesta JavaScriptistä, jossa kyselyyn osallistuvien kehittäjien mielipiteet tallennetaan ja visualisoidaan kauniisti, jotta voidaan näyttää näkemyksiä, jotka merkitsevät JavaScriptien tilaa kyseisenä vuonna.
Tietopisteet kattavat frontend-verkkokehityskehykset, tietokannat, tilanhallinnan, kehysten väliset suhteet, vastaanoton ja helppokäyttöisyyden, JavaScriptiksi kääntyvät kielet, mobiilikehykset, rakennustyökalut, JavaScriptin testaustyökalut ja paljon muuta. Kyseessä on erittäin kattava JavaScript-kysely, jonka Sacha Greif ja muutama muu avustaja aloittivat vuonna 2016, ja nyt viimeisimmässä painoksessa siihen on vastannut yli 20 000 kehittäjää.
Miksi StateOfJS?
Kyllä, State of JS on itse asiassa ensimmäinen JavaScript-kehittäjille suunnattu pelkkä JavaScript-kyselytutkimus, joka on yleisesti arvostettu JavaScript-yhteisön keskuudessa. On olemassa muitakin erittäin suosittuja kyselyitä, kuten stackoverflow-kehittäjäkysely, jossa on yli 100 000 vastaajaa ja jopa Jetbrainin State of Developer Ecosystem Report, jossa on yli 6000 vastaajaa, aiomme kuitenkin keskittyä tänään State of JS -kyselyyn.
Katsastellaanpa lyhyesti näitä testaukseen käytettäviä kehyksiä siinä järjestyksessä, jossa ne havainnollistettiin vuoden 2018 state of javascript -tutkimuksessa.
Vinkki: Kun työskentelet komponenttien (React, ES6 jne.) kanssa, käytä Bitiä, jotta voit helposti jakaa, organisoida ja käyttää niitä uudelleen sovellusten välillä – ja rakentaa nopeammin. Voit myös käyttää sitä komponenttien yksittäiseen testaamiseen pilvessä ennen niiden käyttöä. Kokeile.
Jest
Jest, kiistatta yksi suosituimmista javascript-testauskehyksistä, jolla on yli 22 000 ⭐️ githubissa, on rakennettu ja sitä ylläpitää jatkuvasti Facebookin tiimi. Se on Reactin suosittelema nolla konfiguraatiota vaativa javascript-testauskehys, ja se on myös helppokäyttöisin. Jestillä on erittäin vaikuttava hyväksymisprosentti vuonna 2018 javascript-yhteisössä.
Se on erittäin suorituskykyinen, ja sen käyttöliittymä on yksiselitteinen ja kätevä. Se toimitetaan vakoilijoiden ja mockien kanssa ja luo testiglobaalit oletusarvoisesti. Se tarjoaa myös tilannekuvatestauksen ja mukana toimitetaan sisäänrakennettu koodin kattavuustyökalu. Se on uskomattoman nopea ja yksi parhaista vaihtoehdoista aloittelijoille, jotka haluavat päästä testaamaan javascript-koodiaan. Jestistä on myös saatavilla verkossa valtavasti resursseja.
Mocha
Mocha, jolla on yli 16 000 ⭐️on githubissa, on käytetyin javascriptin testauskehys jo vuosien ajan. Sitä käytetään kolmannen osapuolen assertionien, mockingin ja vakoilutyökalujen kuten chai tai enzyme kanssa. Massiivisen ekosysteemin lisäksi Mochalla on vakiintuneita vaihtoehtoja, joilla on hyvä dokumentaatio. Se on erittäin joustava ja avoin monille laajennuksille.
Vaikka näemme pienen hallitsevuuden siirtymisen Mochasta Jestiin, mutta Mocha on edelleen käytetyin testaustyökalu ja riippuvaisin kirjasto, ja javascript-kehittäjät eivät ole vielä luopumassa siitä lähinnä Mochan käyttöön liittyvän runsaan vapauden ja joustavuuden vuoksi. Mocha-yhteisö on hyvin massiivinen ja siellä on tonneittain resursseja käytöstä ja käyttötapauksista.
Jasmine
Jasmine tunnetaan yleisesti testauskehyksenä, jota Angular virallisesti suosittelee kehittäjille käytettäväksi, Jest-kehys rakennettiin Jasminen pohjalta. Yli 14000 ⭐️on github Jasmine on yksi suosituimmista kehyksistä javascriptin testaamiseen, se on myös yksi vanhimmista myös eniten resursseja ja yhteisön tukea. Angular-kehittäjien olisi helppo käyttää ja integroida sitä, sillä myös Angularin virallinen dokumentaatio suosittelee Jasminen käyttöä. Se on erittäin helppo aloittaa, ja tämä on luultavasti yksi niistä asioista, jotka ovat inspiroineet Jestiä. Vuonna 2018 tutkimuksen mukaan näemme siirtymistä Jasminen käytössä Jestiin ja myös enemmän react-sovelluksia testataan Jasminella verrattuna Angulariin.
On erittäin tärkeää huomioida, että Angular-sovellusten testit voidaan helposti suorittaa Jestillä ja kyse on käytännössä vain mieltymyksestä.
Karma
Karma yli 10 000 ⭐️on githubissa on eräänlainen yleiskäyttöinen javascriptin testauskehys. Voit ajaa testejä selaimessa tai selaimen kaltaisissa ympäristöissä kuten jsdomissa. Mukana on tuki jatkuvaan integrointiin tarkoitetuille työkaluille kuten travis ja jenkins, testejä voi ajaa oikeilla laitteilla tai headless phantomJs-instanssilla. Se on framework agnostic, joten voit kuvata testisi Jasminella, Mochalla tai kirjoittaa yksinkertaisen sovittimen mille tahansa haluamallesi frameworkille.
Testejä voi ajaa myös etänä päätelaitteesta tai IDE:stä tai BrowserStackin kaltaisten palveluiden avulla.
AVA
AVA, jolla on githubissa yli 15 000 ⭐️on githubissa, on tällä hetkellä minimalistisimmin javascriptin testaamiseen tarkoitettu kehys, joka ajaa testejä samanaikaisesti. AVA on testijuoksija Node.js:lle, jossa on tiivis API, yksityiskohtainen virhetulostus, uusien kieliominaisuuksien syleily ja prosessien eristäminen, joiden avulla voit kirjoittaa testejä tehokkaammin.
Se sisältää tuen snapshot-testaukselle ja typescriptille, ja se ajaa testejä watch-tilassa tehden siitä todella nopean; se tarjoaa myös eristetyn ympäristön jokaiselle testitiedostolle. Se on helppo aloittaa ja sillä on kokoelma resursseja saatavilla verkossa.
Cypress
Cypress on erittäin nopea ja luotettava javascriptin testaustyökalu, jolla on yli 9000 ⭐️githubissa. Se periaatteessa injektoi testit verkkosovellukseen, tarjoaa erittäin selkeän ja kattavan dokumentaation ja kilpailee jatkuvasti toisen testauskehyksen TestCafen kanssa.
Se sisältää myös tuen Mochalle ja sillä on todella hyvä tapa kirjata testitulokset kojelautaan ja helppo debuggaus. Se on testauskehys, johon kannattaa kiinnittää huomiota vuonna 2019, sillä sen hyväksymisprosentti kasvaa massiivisesti.
Puppeteer
Googlen tiimin rakentama Puppeteer, jolla on githubissa yli 43 000 ⭐️, on Node-kirjasto, joka tarjoaa korkean tason API:n, jolla voi ohjata Chromea tai Chromiumia DevTools-protokollan kautta. Puppeteer toimii oletusarvoisesti headless, mutta se voidaan konfiguroida käyttämään täyttä (ei-headless) Chromea tai Chromiumia.
Se on uusi testauksen näyttämöllä, mutta jo monet kehittäjät käyttävät sitä (kiitos google!) Se on myös melko nopea, koska se on natiivi, se ei tällä hetkellä tue paljon laajennuksia, mutta tulevaisuus on todella valoisa ja lupaava.
QUnit
Qnit on yli 3700 ⭐️on github, QUnit on JavaScript-yksikkötestauskehys, joka kehitettiin alun perin jQueryn, jQuery UI:n ja jQuery Mobilen testaamiseen, se on yleinen kehys minkä tahansa JavaScript-koodin testaamiseen. Se tukee selainten asiakaspuolen ympäristöjä ja palvelinpuolen ympäristöjä.
QUnit on samanlainen kuin muut yksikkötestauskehykset, kuten JUnit, mutta hyödyntää JavaScriptin tarjoamia ominaisuuksia ja auttaa koodin testaamisessa selaimessa, kuten sisäänrakennettu tuki asynkronisuudelle ja poikkeusten käsittelylle.
Chai
Chai
Withubissa 6000 ⭐️on github, Chai on Behaviour-Driven Development ja Test-driven development assertion-kirjasto, samanlainen kuin Noden sisäänrakennettu assert
. Se tekee testaamisesta paljon helpompaa antamalla sinulle paljon väitteitä, joita voit ajaa koodiasi vastaan. Sen mukana toimitetaan tuki mille tahansa muulle testauskehykselle, kuten Mochalle.
TestCafe
TestCafe, jolla on yli 5900 ⭐️on github, on Noden kehys, jota käytetään päästä päähän javascript-sovellusten testaamiseen. Sen mukana toimitetaan typescript-tuki ja siinä on todella mukava käyttöliittymä testitulosten kirjaamiseen.
Se toimii kaikissa suosituissa ympäristöissä, mukaan lukien Windows, MacOS ja Linux. Se tukee työpöytä-, mobiili-, etä- ja pilviselaimia (UI tai headless). Sillä on myös erittäin perusteellinen dokumentaatio ja kasvava yhteisö.