I denne JavaScript Unit Testing tutorial lærer vi:
Hvad er JavaScript?
- JavaScript er et programmeringssprog, der defineres som et højt niveau, dynamisk og fortolket sprog, der bruges med HTML-webapplikationer
- JavaScript bruges også til andre end webdokumenter såsom PDF-filer og desktop-widgets og blev populært til websiden på serversiden
- JavaScript er objektbaseret script og følger prototypen
JavaScript-enhedstest
JavaScript Unit Testing er en testmetode, hvor JavaScript-testkode skrevet til en webside eller et webapplikationsmodul kombineres med HTML som en integreret hændelseshåndterer og udføres i browseren for at teste, om alle funktioner fungerer fint. Disse enhedstest organiseres derefter i testpakken.
Hver suite indeholder et antal tests designet til at blive udført til et separat modul. Vigtigst er de ikke i konflikt med noget andet modul og kører med færre afhængigheder af hinanden (nogle kritiske situationer kan forårsage afhængigheder).
Udfordringer i JavaScript-enhedstest
Der er visse problemer, man kan finde, når man udfører enhedstest i JavaScript, såsom;
- Mange andre sprog understøtter enhedstest i browsere, både i det stabile og i runtime-miljø, men JavaScript kan ikke
- Du kan forstå nogle systemhandlinger med andre sprog, men dette er ikke tilfældet med JavaScript
- Nogle JavaScript er skrevet til en webapplikation kan have flere afhængigheder
- JavaScript er godt at bruge i kombination med HTML og CSS snarere end på internettet
- Vanskeligheder med sidegengivelse og DOM-manipulation
- Nogle gange finder du fejlmeddelelsen på din skærm vedrørende f.eks. 'Kan ikke indlæse example.js' eller andre JavaScript-fejl vedrørende versionskontrol, disse sårbarheder kommer under Unit Testing JavaScript.
For at undgå sådanne problemer er hvad du kan gøre;
- Brug ikke globale variabler
- Manipuler ikke foruddefinerede objekter
- Design kernefunktionaliteter baseret på bibliotek
- Prøv at oprette små stykker funktioner med mindre afhængighed
Bedste JavaScript-testrammer
Følgende er en kurateret liste over populære JavaScript Unit Testing Frameworks og værktøjer, som er meget udbredt:
1. Unit.js: Det er kendt som et open source-påstandsbibliotek, der kører på browseren og Node.js. Det er yderst kompatibelt med andre JavaScript Unit Testing-rammer som Mocha, Karma, Jasmine, QUnit, Protractor osv. Giver den fulde dokumenterede API med påstandsliste
2. QUnit: Det bruges til både JavaScript-enhedstest på klientsiden og på serversiden. Denne gratis JavaScript-testramme bruges til jQuery-projekter. Det følger Common JS unit testing Specification for unit testing in JavaScript. Det understøtter Node Langsigtet supportplan.
3. Jasmine: Jasmine er den adfærdsdrevne udviklingsramme til enhedstest JavaScript. Det bruges til at teste både synkron og asynkron JavaScript-kode. Det kræver ikke DOM og leveres med den nemme syntaks, der kan skrives til enhver test.
4. Karma: Karma er et open source produktivt testmiljø. Nem kontrol af workflow Kører på kommandolinjen. Tilbyder friheden til at skrive testene med Jasmine, Mocha og QUnit. Du kan køre testen på rigtige enheder med let fejlfinding.
5. Mocha: Mocha kører på Node.js og i browseren. Mocha udfører asynkron test på en enklere måde. Giver nøjagtighed og fleksibilitet i rapporteringen. Giver enorm support af rige funktioner såsom testspecifikke timeouts, JavaScript API'er osv.
6. Jest: Jest bruges indtil videre af Facebook til at teste al JavaScript-koden. Det giver testoplevelsen 'nul-konfiguration'. Understøtter uafhængig og ikke-afbrydende kørselstest uden nogen konflikt. Kræver ingen anden opsætningskonfiguration og biblioteker.
7. AVA: AVA er en enkel JavaScript-ramme til test af enheder. Test køres parallelt og serielt. Parallelle tests kører uden at afbryde hinanden. AVA Understøtter også asynkron test. AVA bruger delprocesser til at køre enhedstest JavaScript.
Resumé
- JavaScript-enhedstestning kan blive kedelig og vanskelig undertiden, da den grundlæggende udføres til frontend. Man kan bruge JS-bibliotekerne til at tilføje lidt lethed. Udfordringen bliver muligvis større, da JavaScript bliver integreret i Node.js og TypeScript.
- Du skal huske på tre ting, mens du udfører testen, f.eks. Funktionen, der skal testes, den endelige output og den forventede output. Nogle værktøjer og JavaScript-testramme kan hjælpe dig med at udføre denne opgave. Ovennævnte værktøjslister er nævnt med de mest populære og nyttige rammer, der bruges til Unit Testing JavaScript.
- Mere end disse med kommende udfordringer i at udføre test der, kan nogle mere kraftfulde rammer og værktøjer udvikles i fremtiden.