Una petita introducció a les proves unitàries de JS i el seu marc i eines
L’escenari de la codificació de desenvolupament web ha canviat exponencialment en els últims anys. El món ha passat de llenguatges de programació convencionals com Java, .NET i PHP. Han començat a adaptar-se a la Marc de JavaScript causa de la seva facilitat d’ús tant en frontal com en backend i capacitats de creació ràpida de prototips
Amb aquesta transició, també sorgeix la necessitat de comptar amb excel·lents eines de prova . En aquest article, el guiaré a través d’algunes de les millors eines de prova d’unitats de JavaScript que s’utilitzen en la indústria.
Importància de les proves unitàries
Abans de començar a comprendre les eines disponibles i els seus beneficis, comprenguem per què les proves unitàries són importants.
La prova unitària és el procés de provar el codi implementat a nivell de mòdul. Les proves unitàries li permeten assegurar-se que els mòduls desenvolupats compleixin amb els requisits especificats en el document comercial. Aquestes proves s’escriuen per a cada mòdul a mesura que es creen. Després de cada desenvolupament d’un nou mòdul, s’executa tot el conjunt de casos de prova per garantir que cap mòdul existent es vegi afectat pel mòdul desenvolupat.
El desenvolupament de Javascript podria desorganitzar bastant si no se segueixen les convencions adequades. Això fa que sigui necessari utilitzar les eines adequades de desenvolupament i proves unitàries. Les proves unitàries de JavaScript per frontend s’executen principalment en navegadors reals o sense cap
Aquestes proves se centren en provar la usabilitat i la capacitat de resposta de l’aplicació. Els marcs de prova d’unitats de backend se centren en provar la lògica empresarial i els punts finals de servei per al codi de backend basat en NodeJS.
MochaJS
MochaJS és el marc de prova més popular que admet proves de backend i frontend. MochaJS és una base flexible per desenvolupar proves segons ho necessiti. Executa les proves de manera asincrònica en el motor Chrome v8 o en qualsevol altre navegador.
Els principals beneficis de Mocha inclouen:
- Funciona tant per frontal com per backend
- Suporta depurador NodeJS
- Proporciona una base neta per desenvolupar proves segons la conveniència de l’desenvolupador.
- Admet qualsevol navegador, inclosa la biblioteca de Chrome sense cap
- Admet la simulació d’objectes per a realitzar proves de backend flexibles
Gessamí
Gessamí és un imitador de l’comportament de l’usuari que li permet realitzar casos de prova similars a el comportament de l’usuari en el seu lloc web. Jasmine és útil per a una interfície de prova de visibilitat, claredat de clics i capacitat de resposta de la interfície d’usuari en diferents resolucions. Jasmine permet automatitzar el comportament de l’usuari amb retards duaners i temps d’espera per simular el comportament real de l’usuari.
els principals beneficis d’usar Jasmine inclouen:
- Menors despeses generals a causa de gairebé zero dependències externes
- Ve amb gairebé totes les eines necessàries fora de la caixa
- Suporta proves de Frontend i Backend
- La codificació és bastant similar a escriure en llenguatge natural.
- Àmplia documentació per utilitzar-lo amb diversos frameworks
Mira aquest brillant prova unitària amb el curs en línia de Jasmine.
AVA
AVA és un marc de prova lleuger i minimalista que aprofita la naturalesa asincrònica de Javascript. AVA pot realitzar proves a el mateix temps.
Et permet un control gairebé total sobre el que fas. Se centra principalment en executar proves per codi basat en NodeJS. Alguns dels beneficis inclouen:
- La petjada lleugera el fa més ràpid
- Executa proves de manera asincrònica i concurrent
- Més ràpid que la majoria de els altres marcs de prova
- La sintaxi més simple per a les proves de Javascript
- Rastres de pila més nets per qualsevol error potencial que es detecti
GEST
GEST és un dels marcs més populars que Facebook manté regularment. És un marc preferit per a les aplicacions basades en React, ja que no requereix configuració.
No obstant això, no es limita a fer servir amb React.Algunes de les característiques de jest són:
- Marc únic apte per a NodeJS, VueJS, React, Angular i altres projectes basats en Babel
- Més fàcil de desenganxar de terra
- Bé documentació i sintaxi estàndard de codificació.
- amb instantànies en viu, permet administrar proves amb objectes més grans
Karma
Karma és un entorn de prova productiu que admet tot el marc de descripció de prova popular dins de si mateix. Brinda a la seva aplicació el suport per executar proves en diferents entorns. Té un ampli suport per a l’execució de proves en diferents dispositius i aplicacions.
El factor principal per triar Karma rau en el seu suport per integrar-se amb motors CI / CD i les següents característiques.
- Es pot utilitzar per executar proves en navegadors, entorns sense cap com PhantomJS i en dispositius.
- Animals proves escrites en la majoria dels marcs populars
- Permet executar proves de manera remota a altres dispositius amb només els arxius que vénen
- Admet la depuració de casos de prova amb Chrome i Webstorm
cinta
cinta és bastant similar a AVA en la seva arquitectura. No admet globals i, per tant, ha d’incloure Tape a cada arxiu de prova. Aquesta decisió de restringir l’globbing de variables també té els seus beneficis. Algunes de les característiques destaquen:
- Petjada neta i lleugera
- Proporciona sol codi barem-metall i li dóna a l’desenvolupador total llibertat per escriure casos de prova
- Compatible amb els estàndards ES6, Typecript i Coffee Script
- Admet l’execució de proves en la majoria dels navegadors moderns
Cypress.io
Xiprer és un marc de prova emocionant que pràcticament s’executa al navegador. Proporciona una interfície d’usuari interactiva al navegador en forma de pàgina web. Es pot instal·lar fàcilment en Mac, Windows i Linux. És un executor de proves independent que no necessita integrar-se estretament amb el seu codi.
Titellaire
Titellaire és un excel·lent marc d’execució de proves creat per un equip de Google. Proporciona una API de Chrome sense cap per a aplicacions NodeJS.
Puppeteer s’usa principalment per a aplicacions específiques de el navegador com a prova de rastreig , prova d’estructura de pàgina, presa de captures de pantalla i fins i tot captura de contingut pre-renderitzat per a aplicacions d’una sola pàgina. Els beneficis addicionals d’usar titellaire són:
- Possibilitat de configurar resolucions i mides personalitzades per al navegador
- Suport per provar extensions de Chrome
- Suport de automatització per a enviament de formularis, proves d’interfície d’usuari i entrades de teclat
- Admet funcionalitats d’ES6 com await i async
ChaiJS
ChaiJS marc se centra en les proves basades en el comportament. Es pot utilitzar en paral·lel amb qualsevol altre marc. Ha existit des de fa força temps i ha evolucionat amb l’evolució dels estàndards de Javascript.
ChaiJS funciona amb Node, browser, rail i té una gran comunitat de suport i documentació.
Qunit
Qunit – un poderós marc de proves dedicat a fer servir amb una interfície. És la primera elecció dels desenvolupadors de les biblioteques JQuery, JQuery Mobile i JQuery UI.
Podeu escriure com un arxiu JS independent i executar-se en qualsevol pàgina web. El mètode estàndard de prova amb Qunit és incloure el fitxer a la pàgina web i executar proves amb el complement Qunit. Els beneficis de QUnit inclouen:
- Es pot utilitzar per crear scripts de prova reutilitzables.
- Proporciona una interfície web llista per implementar per veure visualment els resultats dels casos de prova
- Un grup de complements construït sobre ell permet un desenvolupament de casos de prova més ràpid
d’altra banda
Sinon.js complementa el marc de prova unitari per falsificar / burlar-se de les coses reals. Perquè durant les proves, no tindrà totes les dades! És compatible amb els temps d’execució de Chrome, IE 11, Firefox, Edge, Safari i NODE.JS.
Una bona alternativa a Sinon seria testdouble.js
Conclusió
Les proves unitàries són essencials per garantir que els canvis de codi no trenquin l’aplicació i que funcionin segons els requisits comercials. I espero que l’anterior t’ajudi amb això. Si ets un principiant, pot ser que t’agradi això curs per línia que t’ensenya a fer proves unitàries JS amb ChaiJS, Sinon i Mocha.