Programmering

10 pålitelige JavaScript-testverktøy

Behovet for å teste JavaScript-koden er grei. Hvordan kan du ellers holde feilene og sørge for at applikasjoner kjører problemfritt i nettleseren eller på Node.js? Heldigvis har utviklere en mengde alternativer når det gjelder JavaScript-testing.

Testløpere og rammeverk for enhetstesting, integrasjonstesting og funksjonstesting er lett tilgjengelig for JavaScript-økosystemet, med dekning for Node.js og nettlesere, samt for Angular og React-rammeverket. Følgende er 10 av de mange bemerkelsesverdige alternativene JavaScript-utviklere har for å hjelpe dem med å teste appene sine.

AVA

AVA er en testløper for Node.js som tilbyr et kort API, detaljert feilutdata og støtte for nye språkfunksjoner og prosessisolering. AVA er best egnet for testing av Node.js-moduler og serverapplikasjoner, men kanskje ikke for testing av UI-applikasjoner. AVA tilbyr blant annet en funksjon for å markere en test som en "å gjøre" -oppgave. Hver testfilkjøring er en egen prosess. Andre nevnte fordeler inkluderer AVAs minimalisme og hastighet, enkel testsyntaks og muligheten til å kjøre tester samtidig. AVA har også støtte for asynkroniseringsfunksjoner og observerbare objekter - en observerbar vesen er en type som kan brukes til å modellere push-baserte datakilder som DOM-hendelser.

Installer AVA

Instruksjoner for installering av AVA finner du på prosjektets GitHub-side.

Cucumber.js

JavaScript-implementeringen av Cucumber testverktøyet Cucumber.js kjører på vedlikeholdte Node.js-versjoner og i moderne nettlesere. Agurkprosjektet siterer fordeler, inkludert teamkommunikasjon og muligheten til å kjøre automatiserte tester skrevet på "vanlig" språk, noe som betyr at alle i teamet kan lese dem. Dermed kan kommunikasjon, samarbeid og tillit forbedres. Cucumber.js inneholder en kjørbar fil for å kjøre testseriene dine (kalt funksjoner), så fungerer ikke når den er installert globalt. (Agurk må kreves i støttefiler og globalt installerte moduler kan ikke kreves.)

Installer Cucumber.js

Instruksjoner for installering av Cucumber.js er tilgjengelig på GitHub.

Enzym

Enzyme er et testverktøy for React JavaScript UI-biblioteket. Det er ment å gjøre det lettere å teste utdataene fra React-komponenter. Utviklere kan manipulere, krysse og simulere kjøretid gitt produksjonen. Enzyme API etterligner jQuery API for DOM-manipulering og traversal. Enzym er ikke opptatt av testløperen eller påstandsbiblioteket. Hvis utviklere vil bruke Enzyme med egendefinerte påstander og bekvemmelighetsfunksjoner for å teste React-komponenter, kan de vurdere chai-enzym med Mocha / Chai, jasmin-enzym med Jasmine, eller spøk-enzym med Jest. Enzym kan også brukes til å teste React Native-komponenter.

Installer Enzyme

Instruksjoner for installering av Enzyme finner du på GitHub.

Karma

Karma er en testløper for JavaScript som muliggjør kjøring av kode i flere nettlesere. Alle de store nettleserne, inkludert mobile nettlesere, støttes. Utviklerne bak prosjektet sier at Karma tilbyr et miljø der utviklere ikke trenger å sette opp masse konfigurasjoner, men kan skrive kode og få øyeblikkelig tilbakemelding fra tester. Karma er designet for lavt nivå (enhet) testing. Ikke et testrammeverk eller et påstandsbibliotek, Karma lanserer en HTTP-server og genererer en testløperfil fra utviklerens favoritt testrammeverk. Plug-ins tilbys for rammer som Jasmine, Mocha og QUnit.

Installer Karma

Instruksjoner for installering av Karma er tilgjengelig på GitHub.

Jasmin

Jasmine blir fakturert som et “atferdsdrevet” rammeverk for testing av JavaScript. Den har ingen avhengighet av andre JavaScript-rammer og trenger ikke en DOM. Talsmennene siterer syntaksen som muliggjør enkel skriving av tester. Vedlikeholdt av Pivotal Labs, er Jasmine egnet for testing av nettsteder, Node.js-prosjekter og alt annet der JavaScript kan kjøres. Jasmine er ment å gjøre det enkelt å teste en rekke forskjellige bruksområder og nettlesere, og er JavaScript-rammeverk agnostisk, slik at utviklere kan teste kode fra React eller Angular eller ethvert annet JavaScript-bibliotek. Jasmine streber etter minimale avhengigheter mens hun holder seg liten og vedlikeholdes.

Installer Jasmine

Instruksjoner for å installere Jasmine og komme i gang med Jasmine finner du på GitHub.

Spøk

Jest faktureres som en omfattende JavaScript-testløsning som fungerer rett ut av esken, konfigurasjonsfri, for de fleste JavaScript-prosjekter. Testene har en unik global tilstand og kan kjøres parallelt. Tidligere mislykkede tester kjøres først, med kjører omorganisert basert på lengden på testfilene. Fungerer bare med populære JavaScript-teknologier, inkludert Angular, Babel, Node.js, React og Vue. Tester kan kjøres for å holde oversikt over store objekter, med øyeblikksbilder som lever sammen med tester eller innebygd innebygd. I testfiler setter Jest metoder og objekter i det globale miljøet, uten behov for å importere dem.

Installer Jest

Instruksjoner for installering av Jest finner du på GitHub.

Luna

Luna er et uttalt rammeverk for JavaScript som krever ingen konfigurasjon. Utviklere kan ha sine første enhetstester i løpet av få minutter, heter det i produktdokumentasjonen. Rapporter om kodedekning genereres uten å installere andre moduler. Tester må skrives som ES6-moduler, med tester som standard i nettleseren. Samtidighet støttes, med testgrupper som kjøres parallelt. Luna ble delvis inspirert av den innebygde testen som er tilgjengelig for Googles Go-språk. Luna har ikke plass til transpiling, så fungerer ikke med CoffeeScript eller TypeScript. Det mangler også støtte for eldre nettlesere.

Installer Luna

Instruksjoner for installering av Luna er tilgjengelig på GitHub.

Mokka

Et funksjonsrikt testrammeverk som kjører på Node.js og i nettleseren, lover Mocha å gjøre testing av asynkron kode "enkel og morsom." Tester kjøres serievis, som talsmennene gir mulighet for nøyaktig, fleksibel rapportering mens de kartlegger ufangede unntak fra nøyaktige testtilfeller. For kontinuerlig testing kan utviklere bruke Wallaby.js-verktøyet for å aktivere sanntidskodedekning for Mocha med ethvert påstandsbibliotek. Mocha integreres også med applikasjonsrammer, for eksempel gjennom Konacha, som lar utviklere bruke Mocha til å teste JavaScript i Ruby on Rails-applikasjoner. En rekke redigeringsprogramtillegg er også tilgjengelige, for eksempel Mocha-sidefeltutvidelsen for Visual Studio Code.

Installer Mocha

Instruksjoner for installering av Mocha og dokumentasjon for Mocha's mange funksjoner er tilgjengelig på prosjektnettstedet.

Vinkelmåler

Vinkelmåler er et end-to-end testrammeverk for Angular og forgjengeren, AngularJS. Tester kjøres mot applikasjoner i en nettleser, med Proctractor som samhandler med et program akkurat som en bruker ville. Vinkelspesifikke lokaliseringsstrategier støttes for testing av kantede elementer uten oppsett. En automatisk ventemulighet gjør det mulig for Protractor å utføre neste trinn i en test i det øyeblikket en webside fullfører ventende tester. Protractor ble bygget på toppen av WebdriverJS, en JavaScript-implementering av Selenium-nettverksautomatiseringsverktøyet som ble brukt til testing.

Installer vinkelmåler

Instruksjoner for installasjon av Protractor finner du på Protractor-nettstedet.

QUnit

QUnit er et testrammeverk for JavaScript-enheter som brukes av prosjektene JQuery, jQuery UI og jQuery Mobile. Faktisk ble QUnit opprinnelig utviklet som en del av jQuery av jQuery-oppfinneren John Resig. QUnit faktureres så raskt og enkelt å bruke, med en API som er meningsfull, men mager og utvidbar, og den kan brukes til å teste hvilken som helst generisk JavaScript-kode. Når en test eller påstand mislykkes, lover QUnit å gi tilbakemelding så raskt som mulig, med tilstrekkelig detalj for å finne ut av problemet. Påstandsmetoder i QUnit følger CommonJS-enhetens testspesifikasjon. QUnit støtter nettlesere støttet av jQuery 3.x, inkludert varianter av Chrome, Edge, Firefox, Internet Explorer og Safari.

Installer QUnit

Du kan laste ned og installere QUnit fra QUnit-nettstedet eller fra jQuery.cdn.

$config[zx-auto] not found$config[zx-overlay] not found