Programmering

10 pålidelige JavaScript-testværktøjer

Behovet for at teste JavaScript-kode er ligetil. Hvordan kan man ellers holde fejlene ude og sikre, at applikationer kører problemfrit i browseren eller på Node.js? Heldigvis har udviklere en overflod af muligheder, når det kommer til JavaScript-test.

Testløbere og rammer til enhedstest, integrationstest og funktionstest er let tilgængelige for JavaScript-økosystemet med dækning for Node.js og browsere samt for Angular og React-rammerne. Følgende er 10 af de mange bemærkelsesværdige muligheder, som JavaScript-udviklere har til at hjælpe dem med at teste deres apps.

AVA

AVA er en testløber til Node.js, der tilbyder en kort API, detaljeret fejloutput og understøttelse af nye sprogfunktioner og procesisolering. AVA er bedst egnet til test af Node.js-moduler og serverapplikationer, men måske ikke til test af UI-applikationer. Blandt dets muligheder tilbyder AVA en funktion til at markere en test som en "at gøre" -opgave. Hver testfilkørsel er en separat proces. Andre citerede fordele inkluderer AVAs minimalisme og hastighed, enkel testsyntaks og evnen til at køre tests samtidigt. AVA har også understøttelse af asynkroniseringsfunktioner og observerbare - et observerbart væsen er en type, der kan bruges til at modellere push-baserede datakilder som DOM-hændelser.

Installer AVA

Instruktioner til installation af AVA findes på projektets GitHub-side.

Cucumber.js

JavaScript-implementeringen af ​​agurktestværktøjet Cucumber.js kører på vedligeholdte Node.js-versioner og i moderne webbrowsere. Agurk-projektet nævner fordele inklusive teamkommunikation og evnen til at køre automatiske tests skrevet på “almindeligt” sprog, hvilket betyder at alle i teamet kan læse dem. Således kan kommunikation, samarbejde og tillid forbedres. Cucumber.js inkluderer en eksekverbar fil til at køre dine testpakker (kaldet funktioner), så den fungerer ikke, når den er installeret globalt. (Agurk skal kræves i supportfiler, og globalt installerede moduler kan ikke kræves.)

Installer Cucumber.js

Instruktioner til installation af Cucumber.js er tilgængelige på GitHub.

Enzym

Enzyme er et testværktøj til React JavaScript UI-biblioteket. Det er beregnet til at gøre det lettere at teste output fra React-komponenter. Udviklere kan manipulere, krydse og simulere runtime givet output. Enzyme API efterligner jQuery API til DOM-manipulation og traversal. Enzym er uopfattet om testløberen eller påstandsbiblioteket. Hvis udviklere ønsker at bruge Enzyme med brugerdefinerede påstande og bekvemmelighedsfunktioner til at teste React-komponenter, kan de overveje chai-enzym med Mocha / Chai, jasmin-enzym med Jasmine, eller nar-enzym med Jest. Enzyme kan også bruges til at teste React Native-komponenter.

Installer enzym

Instruktioner til installation af Enzyme findes på GitHub.

Karma

Karma er en testløber til JavaScript, der muliggør udførelse af kode i flere browsere. Alle de største browsere, inklusive mobile browsere, understøttes. Udviklerne bag projektet siger, at Karma tilbyder et miljø, hvor udviklere ikke behøver at oprette masser af konfigurationer, men kan skrive kode og få øjeblikkelig feedback fra test. Karma er designet til test på lavt niveau (enhed). Ikke en testramme eller et påstandsbibliotek, Karma lancerer en HTTP-server og genererer en test-runner-fil fra udviklerens foretrukne testramme. Plug-ins tilbydes til rammer som Jasmine, Mocha og QUnit.

Installer Karma

Instruktioner til installation af Karma findes på GitHub.

Jasmin

Jasmine faktureres som en "adfærdsdrevet" ramme til test af JavaScript. Det er ikke afhængigt af andre JavaScript-rammer og har ikke brug for en DOM. Dets talsmænd nævner sin syntaks som muliggør nem skrivning af test. Vedligeholdt af Pivotal Labs er Jasmine velegnet til test af websteder, Node.js-projekter og alt andet, hvor JavaScript kan køre. Jasmine er beregnet til at lette testning til en række forskellige brugssager og browsere og er JavaScript-ramme agnostisk, så udviklere er i stand til at teste kode fra React eller Angular eller ethvert andet JavaScript-bibliotek. Jasmine stræber efter minimale afhængigheder, mens hun forbliver lille og vedligeholdelig.

Installer Jasmine

Instruktioner til installation af Jasmine og komme i gang med Jasmine findes på GitHub.

Spøg

Jest faktureres som en omfattende JavaScript-testløsning, der fungerer ud af boksen, konfigurationsfri, for de fleste JavaScript-projekter. Test har en unik global tilstand og kan køres parallelt. Tidligere mislykkede tests køres først med kørsler reorganiseret baseret på testfilernes længde. Fungerer bare med populære JavaScript-teknologier, herunder Angular, Babel, Node.js, React og Vue. Test kan køres for at holde styr på store objekter, hvor snapshots lever sammen med tests eller indlejret inline. I testfiler placerer Jest metoder og objekter i det globale miljø uden behov for at importere dem.

Installer Jest

Instruktioner til installation af Jest findes på GitHub.

Luna

Luna er en meningsfuld enhedstestningsramme til JavaScript, der ikke kræver nogen konfiguration. I produktdokumentationen fremgår det, at udviklere kan have deres første enhedstest kørt inden for få minutter. Kodedækningsrapporter genereres uden installation af andre moduler. Test skal skrives som ES6-moduler, og test køres som standard i browseren. Samtidighed understøttes, hvor testgrupper køres parallelt. Luna blev delvist inspireret af den indbyggede test, der er tilgængelig for Googles Go-sprog. Luna har ikke plads til transpiling, så det fungerer ikke med CoffeeScript eller TypeScript. Det mangler også support til ældre browsere.

Installer Luna

Instruktioner til installation af Luna findes på GitHub.

Mokka

En funktionsrig testramme, der kører på Node.js og i browseren, lover Mocha at gøre test af asynkron kode "enkel og sjov." Test køres serielt, hvilket talsmænd siger, at det giver mulighed for nøjagtig, fleksibel rapportering, mens de kortlagte undtagelser fra nøjagtige testsager kortlægges. Til kontinuerlig test kan udviklere bruge Wallaby.js-værktøjet til at muliggøre realtidskodedækning for Mocha med ethvert påstandsbibliotek. Mocha integreres også med applikationsrammer, såsom gennem Konacha, som lader udviklere bruge Mocha til at teste JavaScript i Ruby on Rails-applikationer. Et antal editor-plugins er også tilgængelige, såsom Mocha sidebjælkeudvidelse til Visual Studio Code.

Installer Mocha

Instruktioner til installation af Mocha og dokumentation til Mocha's mange funktioner er tilgængelige på projektwebstedet.

Vinkelmåler

Vinkelmåler er en end-to-end testramme for Angular og dens forgænger, AngularJS. Test køres mod applikationer i en browser, hvor Proctractor interagerer med en applikation ligesom en bruger ville. Vinkelspecifikke lokaliseringsstrategier understøttes til test af kantede elementer uden opsætning. En automatisk ventefunktion gør det muligt for Vinkelmåler at udføre det næste trin i en test i det øjeblik en webside gennemfører afventende tests. Vinkelmåler blev bygget oven på WebdriverJS, en JavaScript-implementering af Selenium-browserautomationsværktøjet, der blev brugt til test.

Installer vinkelmåler

Instruktioner til installation af Protractor findes på Protractor-webstedet.

QUnit

QUnit er en JavaScript-enhedstestramme, der bruges af projekterne JQuery, jQuery UI og jQuery Mobile. Faktisk blev QUnit oprindeligt udviklet som en del af jQuery af jQuery-opfinderen John Resig. QUnit faktureres så hurtigt og nemt at bruge, med en API, der er meningsfuld, men slank og udvidelig, og den kan bruges til at teste enhver generisk JavaScript-kode. Når en test eller påstand mislykkes, lover QUnit at give feedback så hurtigt som muligt med tilstrækkelige detaljer til at finde ud af problemet. Påstandsmetoder i QUnit følger CommonJS-enhedens testspecifikation. QUnit understøtter browsere bakket op af jQuery 3.x, inklusive varianter af Chrome, Edge, Firefox, Internet Explorer og Safari.

Installer QUnit

Du kan downloade og installere QUnit fra QUnit-webstedet eller fra jQuery.cdn.