10 strumenti di test JavaScript affidabili

La necessità di testare il codice JavaScript è semplice. In quale altro modo tenere fuori i bug e assicurarsi che le applicazioni funzionino senza problemi nel browser o su Node.js? Fortunatamente, gli sviluppatori hanno una pletora di opzioni quando si tratta di test JavaScript.

Runner di test e framework per unit test, test di integrazione e test funzionali sono prontamente disponibili per l'ecosistema JavaScript, con copertura per Node.js e browser, nonché per i framework Angular e React. Di seguito sono elencate 10 delle molte opzioni degne di nota che gli sviluppatori JavaScript hanno per aiutarli a testare le loro app.

AVA

AVA è un test runner per Node.js che offre un'API concisa, un output dettagliato degli errori e supporto per nuove funzionalità del linguaggio e isolamento dei processi. AVA è più adatto per testare i moduli Node.js e le applicazioni server, ma forse non per testare le applicazioni dell'interfaccia utente. Tra le sue capacità, AVA offre una funzione per contrassegnare un test come un'attività "da fare". Ogni esecuzione del file di test è un processo separato. Altri vantaggi citati includono il minimalismo e la velocità di AVA, la semplice sintassi dei test e la capacità di eseguire i test contemporaneamente. AVA supporta anche funzioni asincrone e osservabili, un tipo osservabile che può essere utilizzato per modellare origini dati basate su push come eventi DOM.

Installa AVA

Le istruzioni per l'installazione di AVA possono essere trovate sulla pagina GitHub del progetto.

Cucumber.js

L'implementazione JavaScript dello strumento di test Cucumber, Cucumber.js, viene eseguita sulle versioni Node.js mantenute e nei browser Web moderni. Il progetto Cucumber cita vantaggi tra cui le comunicazioni del team e la capacità di eseguire test automatizzati scritti in un linguaggio "semplice", il che significa che chiunque nel team può leggerli. Pertanto, la comunicazione, la collaborazione e la fiducia possono essere migliorate. Cucumber.js include un file eseguibile per eseguire le suite di test (chiamate funzionalità), quindi non funziona se installato a livello globale. (Il cetriolo deve essere richiesto nei file di supporto e i moduli installati a livello globale non possono essere richiesti.)

Installa Cucumber.js

Le istruzioni per l'installazione di Cucumber.js sono disponibili su GitHub.

Enzima

Enzyme è un'utilità di test per la libreria dell'interfaccia utente JavaScript React. Ha lo scopo di rendere più facile testare l'output dei componenti React. Gli sviluppatori possono manipolare, attraversare e simulare il runtime dato l'output. L'API Enzyme imita l'API jQuery per la manipolazione e l'attraversamento DOM. Enzyme non ha opinioni sul test runner o sulla libreria di asserzioni. Se gli sviluppatori desiderano utilizzare Enzyme con asserzioni personalizzate e funzioni utili per testare i componenti React, possono prendere in considerazione chai-enzymecon Mocha / Chai, jasmine-enzymecon Jasmine o jest-enzymecon Jest. L'enzima può anche essere utilizzato per testare i componenti React Native.

Installa Enzyme

Le istruzioni per l'installazione di Enzyme sono disponibili su GitHub. 

Karma

Karma è un test runner per JavaScript che consente l'esecuzione di codice in più browser. Sono supportati tutti i principali browser, inclusi i browser mobili. Gli sviluppatori dietro il progetto affermano che Karma offre un ambiente in cui gli sviluppatori non devono impostare un sacco di configurazioni, ma possono scrivere codice e ottenere un feedback immediato dai test. Karma è progettato per test (unitari) di basso livello. Non è un framework di test o una libreria di asserzioni, Karma avvia un server HTTP e genera un file di runner di test dal framework di test preferito dallo sviluppatore. Sono disponibili plug-in per framework come Jasmine, Mocha e QUnit.

Installa Karma

Le istruzioni per l'installazione di Karma sono disponibili su GitHub.

Gelsomino

Jasmine è considerato un framework "basato sul comportamento" per testare JavaScript. Non ha alcuna dipendenza da altri framework JavaScript e non necessita di un DOM. I suoi sostenitori citano la sua sintassi in quanto consente una facile scrittura dei test. Gestito da Pivotal Labs, Jasmine è adatto per testare siti Web, progetti Node.js e qualsiasi altra cosa in cui è possibile eseguire JavaScript. Jasmine ha lo scopo di portare facilità di test a una varietà di diversi casi d'uso e browser ed è indipendente dal framework JavaScript, consentendo agli sviluppatori in grado di testare il codice da React o Angular o qualsiasi altra libreria JavaScript. Jasmine si impegna per dipendenze minime pur rimanendo piccola e manutenibile.

Installa Jasmine

Le istruzioni per l'installazione di Jasmine e per iniziare con Jasmine sono disponibili su GitHub.

Scherzo

Jest è classificato come una soluzione completa di test JavaScript che funziona immediatamente, senza configurazione, per la maggior parte dei progetti JavaScript. I test hanno uno stato globale univoco e possono essere eseguiti in parallelo. I test precedentemente falliti vengono eseguiti per primi, con le corse riorganizzate in base alla lunghezza dei file di test. Funziona solo con le tecnologie JavaScript più diffuse tra cui Angular, Babel, Node.js, React e Vue. I test possono essere eseguiti per tenere traccia di oggetti di grandi dimensioni, con istantanee che vivono insieme ai test o incorporate in linea. Nei file di test, Jest inserisce metodi e oggetti nell'ambiente globale, senza bisogno di importarli.

Installa Jest

Le istruzioni per l'installazione di Jest possono essere trovate su GitHub. 

Luna

Luna è un framework di test unitario supponente per JavaScript che non richiede configurazione. Gli sviluppatori possono eseguire i primi unit test in pochi minuti, afferma la documentazione del prodotto. I rapporti sulla copertura del codice vengono generati senza installare altri moduli. I test devono essere scritti come moduli ES6, con i test eseguiti nel browser per impostazione predefinita. La concorrenza è supportata, con i gruppi di test eseguiti in parallelo. Luna è stata parzialmente ispirata dai test integrati disponibili per la lingua Go di Google. Luna non supporta il transpiling, quindi non funzionerà con CoffeeScript o TypeScript. Inoltre manca il supporto per i browser meno recenti. 

Installa Luna

Le istruzioni per l'installazione di Luna sono disponibili su GitHub. 

Mocha

Un framework di test ricco di funzionalità che viene eseguito su Node.js e nel browser, Mocha promette di rendere il test del codice asincrono "semplice e divertente". I test vengono eseguiti in serie, il che, secondo i sostenitori, consente un reporting accurato e flessibile mappando le eccezioni non rilevate a casi di test accurati. Per il test continuo, gli sviluppatori possono utilizzare lo strumento Wallaby.js per abilitare la copertura del codice in tempo reale per Mocha con qualsiasi libreria di asserzioni. Mocha si integra anche con i framework delle applicazioni, come Konacha, che consente agli sviluppatori di utilizzare Mocha per testare JavaScript nelle applicazioni Ruby on Rails. Sono disponibili anche numerosi plug-in di editor, come l'estensione della barra laterale Mocha per Visual Studio Code. 

Installa Mocha

Le istruzioni per l'installazione di Mocha e la documentazione per le numerose funzionalità di Mocha sono disponibili sul sito Web del progetto. 

Goniometro

Goniometro è un framework di test end-to-end per Angular e il suo predecessore, AngularJS. I test vengono eseguiti contro le applicazioni in un browser, con Proctractor che interagisce con un'applicazione proprio come farebbe un utente. Sono supportate strategie di localizzazione angolari specifiche per testare elementi angolari senza alcuna configurazione. Una funzionalità di attesa automatica consente a Protractor di eseguire il passaggio successivo di un test nel momento in cui una pagina Web completa i test in sospeso. Goniometro è stato costruito su WebdriverJS, un'implementazione JavaScript dello strumento di automazione del browser Selenium utilizzato per i test.

Installa Goniometro

Le istruzioni per l'installazione di Goniometro sono disponibili sul sito Web di Goniometro. 

QUnit

QUnit è un framework di unit test JavaScript utilizzato dai progetti JQuery, jQuery UI e jQuery Mobile. In effetti QUnit è stato originariamente sviluppato come parte di jQuery dall'inventore di jQuery John Resig. QUnit è fatturato come veloce e facile da usare, con un'API che è supponente ma snella ed estensibile e può essere utilizzato per testare qualsiasi codice JavaScript generico. Quando un test o un'asserzione fallisce, QUnit promette di fornire un feedback il più rapidamente possibile, con dettagli sufficienti per capire il problema. I metodi di asserzione in QUnit seguono la specifica di unit test CommonJS. QUnit supporta i browser supportati da jQuery 3.x, comprese le varianti di Chrome, Edge, Firefox, Internet Explorer e Safari.

Installa QUnit

È possibile scaricare e installare QUnit dal sito Web QUnit o da jQuery.cdn.