StateOfJS survey results: vilka JS-testramverk kommer att styra 2019?
En snabb översikt över de mest in-javascript-testramverk som kommer att stå i centrum för javascript-ekosystemet och som utvecklare bör bekanta sig med under 2019
TL;DR: I den här artikeln tittar vi på de mest efterfrågade ramverken för javascript-testning och granskar dem utifrån insikter från resultaten av javascript-testningen.
Generellt sett finns det i princip tre typer eller sätt som en javascriptapplikation kan testas på. Det första sättet är genom att testa enskilda funktioner separat eller oberoende av varandra genom en slags blackbox-metod där indata förses med en redan känd utgång för att se till att förväntade resultat produceras, detta kallas Unit Testing. Processen där man sedan testar hela komponenten eller applikationen för att se om förväntade resultat uppnås kallas integrationstestning. Det tredje sättet är känt som User Interface Testing, det används för att i princip testa din applikation genom att kontrollera webbläsaren utan att lägga stor vikt vid det interna arbetet för att testa förväntningar.
Vad är StateOfJS
State of JS är i princip en årlig undersökning av allting JavaScript där åsikterna från utvecklare som deltar i undersökningen registreras och visualiseras vackert för att visa insikter som betecknar tillståndet för JavaScript under det året.
Datapunkterna omfattar ramverk för frontendwebbutveckling, databaser, tillståndshantering, relationer mellan ramverk, mottagning och användarvänlighet, språk som kompileras till JavaScript, mobila ramverk, byggverktyg, verktyg för JavaScript-testning och en hel del annat. Det är en mycket omfattande JavaScript-enkät som startades 2016 av Sacha Greif och några andra medhjälpare och nu har den över 20 000 utvecklarsvar i den senaste upplagan.
Varför StateOfJS?
Ja, State of JS är faktiskt den allra första utvecklarnas enkätundersökning enbart för JavaScript som är universellt respekterad när det gäller JavaScript-communityt. Det finns andra mycket populära undersökningar som stackoverflow developer survey med över 100 000 respondenter och även Jetbrains State of Developer Ecosystem Report med över 6 000 respondenter, vi kommer dock att fokusera på state of js survey idag.
Låt oss ta en snabb översikt över dessa testramverk i den ordning de visualiserades i state of javascript 2018-undersökningen.
Tip: När du arbetar med komponenter (React, ES6 etc.) använd Bit för att enkelt dela, organisera och återanvända dem mellan appar – för att bygga snabbare. Du kan också använda det för att individuellt testa komponenter i molnet, innan du använder dem. Ge det ett försök.
Jest
Jest, utan tvekan ett av de mest populära javascript-testramverken med över 22 000 ⭐️ på github, byggdes och underhålls ständigt av teamet på Facebook. Det är ett javascript-testramverk med nollkonfiguration som rekommenderas av React och det mest lättanvända också. Jest har en mycket imponerande acceptansgrad 2018 av javascriptcommunityt.
Det är mycket prestandamässigt, med ett entydigt och bekvämt användargränssnitt. Den levereras med spies och mocks och skapar testglobaler som standard. Den ger också möjlighet till snapshot-testning och levereras med ett inbyggt kodtäckningsverktyg. Det är otroligt snabbt och ett av de bästa alternativen för nybörjare som vill börja testa sin javascriptkod. Det finns också massor av resurser tillgängliga online om Jest.
Mocha
Mocha med över 16 000 ⭐️på github är det mest använda ramverket för javascript-testning sedan flera år tillbaka. Det används med assertions, mocking och spioneringsverktyg från tredje part som chai eller enzyme. Förutom det massiva ekosystemet har Mocha väletablerade alternativ med en bra dokumentation. Det är mycket flexibelt och öppet för många tillägg.
Och även om vi ser en liten drift av dominans från Mocha till Jest, men Mocha är fortfarande det mest använda testverktyget och det mest beroende biblioteket och javaskriptutvecklare släpper inte taget ännu, främst på grund av den rikedom av frihet och flexibilitet som följer med att använda Mocha. Mocha-communityn är mycket massiv och det finns massor av resurser där ute om användning och användningsfall.
Jasmine
Jasmine är allmänt känt som det testramverk som officiellt rekommenderas av Angular för utvecklare att använda, Jest-ramverket byggdes baserat på Jasmine. Med över 14 000 ⭐️på github är Jasmine ett av de mest populära ramverken för testning av javascript, det är också ett av de äldsta också med mest resurser och samhällsstöd. Angular-utvecklare skulle tycka att det är lätt att använda och integrera eftersom den officiella dokumentationen för Angular också föreslår att Jasmine används. Det är mycket lätt att komma igång, detta är förmodligen en av de saker som inspirerade Jest. Under 2018 enligt undersökningen ser vi ett skifte i användningen av Jasmine till Jest och även fler react-applikationer som testas av jasmine jämfört med angular.
Det är mycket viktigt att notera att tester för Angular-applikationer enkelt kan köras med Jest och det handlar praktiskt taget bara om preferenser.
Karma
Karma med över 10 000 ⭐️på github är ett slags javascript-testramverk för allmänna användningsfall. Du kan köra tester i din webbläsare eller i webbläsarliknande miljöer som jsdom. Det finns stöd för verktyg för kontinuerlig integration som travis och jenkins, tester kan köras på riktiga enheter eller på en headless phantomJs instans. Det är ramverk agnostiskt så du kan beskriva dina tester med Jasmine, Mocha eller skriva en enkel adapter för vilket ramverk du vill.
Tester kan också köras på distans från din terminal eller IDE eller med hjälp av tjänster som BrowserStack.
AVA
AVA med över 15 000 ⭐️på github är för närvarande det mest minimalistiska javascripttestramverket som finns där ute och som kör tester parallellt. AVA är en testkörare för Node.js med ett kortfattat API, detaljerad felutgång, omfamning av nya språkfunktioner och processisolering som gör att du kan skriva tester mer effektivt.
Det levereras med stöd för snapshot-testning och typescript och kör tester i watch-läge vilket gör det riktigt snabbt; det ger också en isolerad miljö för varje testfil. Det är lätt att komma igång och har en samling resurser tillgängliga online.
Cypress
Med över 9 000 ⭐️på github är Cypress ett mycket snabbt och pålitligt javascript-testverktyg. Det injicerar i princip tester i en webbapplikation, det ger en mycket tydlig och omfattande dokumentation och är i ständig konkurrens med ett annat testramverk TestCafe.
Det levereras också med stöd för Mocha och har ett riktigt bra sätt att logga testresultat i en instrumentpanel och enkel felsökning. Det är testramverket att hålla utkik efter under 2019 med massivt ökande acceptansgrad.
Puppeteer
Med över 43 000 ⭐️på github är Puppeteer, som byggts av teamet på Google, ett Node-bibliotek som tillhandahåller ett API på hög nivå för att styra Chrome eller Chromium över DevTools-protokollet. Puppeteer kör headless som standard, men kan konfigureras för att köra fullständig (icke-headless) Chrome eller Chromium.
Det är nytt på testscenen men har redan många utvecklare som använder det (tack Google!) Det är också ganska snabbt, eftersom det är inbyggt, har det för närvarande inte stöd för många tillägg men framtiden är verkligen ljus och lovande.
QUnit
Med över 3 700 ⭐️på github är QUnit ett ramverk för JavaScript-enhetstestning som ursprungligen utvecklades för att testa jQuery, jQuery UI och jQuery Mobile, det är ett generiskt ramverk för att testa all JavaScript-kod. Det har stöd för klientsidemiljöer i webbläsare och serversida.
QUnit liknar andra ramverk för enhetstestning som JUnit, men använder sig av de funktioner som JavaScript tillhandahåller och hjälper till med testning av kod i webbläsaren, t.ex. inbyggt stöd för asynkronicitet och undantagshantering.
Chai
Med 6 000 ⭐️på github är Chai ett assertionbibliotek för beteendedriven utveckling och testdriven utveckling, som liknar Nodes inbyggda assert
. Det gör testning mycket enklare genom att ge dig massor av assertions som du kan köra mot din kod. Det levereras med stöd för alla andra testramverk som Mocha.
TestCafe
TestCafe med över 5 900 ⭐️på github, är ett Node-ramverk som används för testning av javascript-applikationer från början till slut. Det levereras med stöd för typescript och har ett riktigt trevligt gränssnitt för loggning av testresultat.
Det körs på alla populära miljöer inklusive Windows, MacOS och Linux. Den stöder skrivbords-, mobil, fjärr- och molnwebbläsare (UI eller headless). Den har också en mycket utförlig dokumentation och ett växande community.
Honorabla omnämnanden
Protractor
Slutsats
.