De JavaScript-wereld biedt tal van opties voor … nou ja, zo’n beetje alles. Vandaag richten we ons op testtools en beantwoorden we de vraag: “Wat is het beste JavaScript-framework?”

We nemen vijf van de populairste JavaScript-testframeworks met je door en aan het eind van het artikel kiezen we het framework dat wij het beste vinden. Laten we beginnen.

Wat zijn test frameworks?

Voordat we in onze lijst van frameworks duiken, is het belangrijk om te begrijpen wat een test framework is.

Simpel gezegd, een test framework is een tool – of een set van tools – die je helpt bij het uitvoeren van unit testen. Een test framework moet u voorzien van ten minste

  • Regels of conventies voor het schrijven van testgevallen en het organiseren van hen in test suites.
  • Middelen om automatisch uit te voeren en zelf-grade van de tests.
  • Resultaten van de tests die worden weergegeven en geformatteerd.

Five JavaScript Testing Frameworks Worth Checking Out

U zou nu een stevige greep moeten hebben op wat testframeworks zijn en waarom we ze nodig hebben. Met dat uit de weg, is het tijd om onze lijst van tools aan te pakken, te beginnen met Mocha.

Mocha

Mocha, soms ook MochaJS genoemd, is een test framework dat zowel in Node.js als in de browser draait. Het werd uitgebracht in 2011 en is sindsdien een van de meest populaire testframeworks voor de JavaScript-wereld. Volgens het State of JavaScript-rapport is de populariteit van Mocha de laatste jaren echter afgenomen, ook al is het nog steeds misschien wel de meest gebruikte en bekendste van de tools.

Dit framework maakt asynchroon testen eenvoudig door tests serieel uit te voeren. Dat maakt nauwkeurige rapportage mogelijk en, tegelijkertijd, het in kaart brengen van niet-gevangen uitzonderingen naar de juiste testgevallen. Het Mocha framework heeft een extreem flexibele configuratie. Je kunt het koppelen aan de bibliotheken die je in het bijzonder nodig hebt voor functionaliteiten als assertions, mocking, enzovoort.

De keerzijde van die flexibiliteit is dat Mocha meer werk vereist voor de eerste opzet. Ook, terwijl andere frameworks al komen met assertions en mocking functionaliteiten, Mocha vereist extra tools voor dat.

Officiële site: mochajs.org
Repository: github.com/mochajs/mocha

Puppeteer

Puppeteer is een Node.js bibliotheek die gebruikers in staat stelt om een headless Chrome of Chromium browser te besturen. Op die manier is het mogelijk om tests te automatiseren die je normaal handmatig zou uitvoeren met een gewone browser. Op de pagina van het project staan enkele voorbeelden van tests die u kunt uitvoeren:

  • Genereer screenshots en PDF’s van pagina’s.
  • Crawl een SPA (single-page application) en genereer pre-rendered content (d.w.z., “SSR” ).
  • Automeer formulierindiening, UI-tests, toetsenbordinvoer, enzovoort.
  • Creëer een up-to-date, geautomatiseerde testomgeving. Voer uw tests direct in de nieuwste versie van Chrome uit met behulp van de nieuwste JavaScript- en browserfuncties.
  • Vang een tijdlijntrace van uw site om te helpen bij de diagnose van prestatieproblemen.
  • Test Chrome-extensies.
  • Testim heeft een gratis recorder voor Puppeteer uitgebracht. Bekijk het en gebruik het zo vaak als je wilt.

Officiële site: developers.google.com/web/tools/puppeteer
Repository: github.com/puppeteer/puppeteer

Jasmine

Jasmine is een JavaScript BDD (behavior-driven development) test framework.

Dit framework wordt al geleverd met zo’n beetje alles wat je nodig hebt om te beginnen met testen. Het heeft ingebouwde assertions en testdubbelaars met spionnen, in tegenstelling tot bijvoorbeeld Mocha, waarvoor je tools van derden moet installeren voor die functionaliteiten.

Jasmine is echter ook flexibel en kan naadloos integreren met een groot aantal extra testtools. U kunt Karma eenvoudig gebruiken als test runner of Sinon.JS inzetten voor uw mocking behoeften.

Officiële site: jasmine.github.io/
Repository: github.com/jasmine/jasmine

QUnit

QUnit was oorspronkelijk een onderdeel van de jQuery programmeerbibliotheek. John Resig creëerde het voor het testen van jQuery, jQuery UI, en jQuery Mobile. In 2008 werd QUnit uit de jQuery codebase gehaald en uitgebracht als een standalone framework, maar het had nog steeds jQuery nodig om te werken. In 2009 werd dit opgelost met een herschrijving, waardoor QUnit eindelijk onafhankelijk werd van jQuery.

Ondanks dat het oorspronkelijk gericht was op jQuery, is QUnit momenteel een generiek framework dat elke JavaScript code kan testen, met ondersteuning voor zowel client- als server-side omgevingen.

Je zou QUnit kunnen zien als de JavaScript vertegenwoordiger in de xUnit familie van unit testing frameworks. Het is snel en eenvoudig op te zetten. En omdat het al minstens 12 jaar bestaat, is het een goed ondersteunde tool.

Officiële site: qunitjs.com
Repository: github.com/qunitjs/qunit

Jest

Jest is een testframework voor JavaScript dat zich richt op eenvoud. Uitgebracht door Facebook, heeft Jest als doel om out of the box te werken en zonder configuratie.

Als je een kijkje neemt op de Jest “getting started” pagina, zul je zien dat je het kunt installeren, je eerste test kunt schrijven, en het kunt draaien in een kwestie van een paar minuten, zonder ingewikkelde setups of extra installaties. Een ander voordeel van Jest is de indrukwekkende performance.

Jest wordt primair gebruikt voor het testen van React-applicaties, maar dat betekent niet dat je beperkt bent om het te gebruiken om alleen apps te testen die met het framework zijn geschreven. Integendeel: je kunt het ook gebruiken om Node-, Angular- en Vue-toepassingen te testen, om er maar een paar te noemen.

Officiële site: jestjs.io/
Repository: github.com/facebook/jest

Notable Absences

Je vraagt je misschien af waarom sommige beroemde JavaScript-testtools onze lijst niet hebben gehaald. Misschien denk je dat tools als Karma, Sinon, en Chai, onder andere, populair genoeg zijn om op de lijst te staan. Waarom hebben we ze niet opgenomen?

Simpel gezegd wilden we de lijst zo beknopt mogelijk houden. Om dat te doen, hebben we besloten om geen testprogramma’s op de lijst te zetten die strikt genomen geen frameworks zijn. Dat is dus de reden waarom een super populaire tool als Karma het niet haalde: het is een test runner, geen framework. Dezelfde redenering geldt voor Sinon (een mocking tool) en Chai (een assertion library).

Je zou kunnen aanvoeren dat Puppeteer niet helemaal in de lijst past en, tot op zekere hoogte, ben ik het daarmee eens. Dat wil zeggen, alle andere gereedschappen zijn frameworks die meer geschikt zijn voor het uitvoeren van unit-test-style tests, terwijl Puppeteer meer een browser automatiseringstool is. Het is echter nog steeds een test framework, in de zin dat het je toestaat om geautomatiseerde tests te ontwerpen die later worden uitgevoerd zonder menselijke tussenkomst.

Verdict: What’s the Best JavaScript Testing Framework?

We hebben vijf testframeworks voor JavaScript gepresenteerd. Nu is het tijd om de belofte in de titel waar te maken en de beste te kiezen. Om dat te doen, gaan we de frameworks beoordelen op vier criteria: kosten, installatie, installatiegemak, en leercurve.

Evaluatie van de frameworks

Kosten

Het eerste criterium is zeker het makkelijkst voor ons om te evalueren. Alle frameworks die we hier besproken hebben zijn open-source projecten, dus u kunt ze gratis downloaden en gebruiken (als in bier). Dus, we hebben geen duidelijke winnaar hier. Laten we verder gaan.

Installatie

Het installeren van alle bovenstaande tools is vrij eenvoudig. Je kunt ze immers allemaal installeren met behulp van npm (of, als alternatief, Yarn.) Sommige van de tools bieden echter extra installatieopties.

Naast npm en Yarn, kun je bijvoorbeeld QUnit installeren als een standalone download. Maar dat zou vereisen dat u deze asset opslaat en beheert. In plaats daarvan kunt u de versie gebruiken die gehost wordt op de jQuery CDN. Jasmine biedt ook een standalone versie die niet afhankelijk is van Node en waarmee u specs kunt draaien met behulp van uw browser.

Dus, hebben we hier een winnaar? Wij denken van wel. Als we alleen op installatiegemak zouden moeten afgaan, zouden we weer een winnaar hebben. Maar, zoals we hebben gezien, bieden QUnit en Jasmine beide meer mogelijkheden, omdat u ze kunt gebruiken als standalone bibliotheken. Is deze extra flexibiliteit nuttig? Dat kan per geval verschillen, maar voor ons zijn QUnit en Jasmine hier de winnaars.

Winnaars: QUnit en Jasmine

Instelgemak

Nu, laten we eens kijken naar het installatiegemak. Als het gaat om de eerste installatie, hebben we hier een duidelijke winnaar: Jest. Het framework belooft zero-config gebruik en maakt die belofte waar. Natuurlijk, het staat je toe om optionele configuraties te doen, maar het voelt geweldig om een test framework te installeren en een echte test te draaien in ongeveer twee minuten, zonder enige configuratie of installatie van verdere tools.

Winnaar: Jest

Leercurve

Ten slotte, de leercurve. We moeten hier weer voor Jest kiezen. Omdat het met een brede API komt en niet zoveel tools van derden nodig heeft als de andere frameworks, heeft Jest onvermijdelijk een minder steile leercurve.

Winnaar: Jest

Hier is de winnaar

Na vijf JavaScript-testframeworks te hebben behandeld en ze vervolgens aan de hand van vier criteria te hebben geanalyseerd, is het tijd om een winnaar te kiezen.

Dus, omdat het de winnaar was in twee van de vier criteria die we hebben gebruikt, kiezen we Jest als onze winnaar. Dat betekent niet dat je de andere tools niet moet proberen. Integendeel: experimenteer en oefen zo veel als je kunt, want dat is de beste manier om te leren.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.