Risultati del sondaggio StateOfJS: quali frameworks di testing JS domineranno il 2019?
Una rapida panoramica dei più inrichiesti framework di test javascript che avrebbero preso il centro della scena nell’ecosistema javascript e che gli sviluppatori dovrebbero conoscere nel 2019
TL;DR: in questo articolo, daremo un’occhiata ai migliori framework di test javascript più richiesti e li esamineremo in base alle intuizioni dello stato dei risultati di javascript.
Generalmente, ci sono fondamentalmente tre tipi o modi in cui un’applicazione javascript può essere testata. Il primo modo è testare le singole funzioni separatamente o indipendentemente attraverso una sorta di metodo blackbox in cui gli input vengono forniti con un output già noto per assicurarsi che vengano prodotti i risultati attesi, questo è chiamato Unit Testing. Il processo di testare poi l’intero componente o applicazione per vedere se i risultati attesi vengono prodotti è chiamato Integration Testing. Il terzo modo è conosciuto come User Interface Testing, è usato fondamentalmente per testare la tua applicazione controllando il browser senza molta enfasi sul funzionamento interno per testare le aspettative.
Che cos’è StateOfJS
State of JS è fondamentalmente un sondaggio annuale su tutto ciò che è JavaScript dove le opinioni degli sviluppatori che partecipano al sondaggio sono registrate e splendidamente visualizzate per mostrare intuizioni che indicano lo stato di JavaScript in quell’anno.
I dati riguardano i framework di sviluppo web frontend, i database, la gestione dello stato, le relazioni tra i framework, l’accoglienza e la facilità d’uso, i linguaggi che compilano JavaScript, i framework mobili, gli strumenti di costruzione, gli strumenti di test JavaScript e molto altro. È un sondaggio JavaScript molto completo che è stato avviato nel 2016 da Sacha Greif e alcuni altri aiutanti e ora ha oltre 20.000 risposte di sviluppatori nell’ultima edizione.
Perché StateOfJS?
Sì, State of JS è effettivamente il primissimo sondaggio per sviluppatori solo JavaScript che è universalmente rispettato per quanto riguarda la comunità JavaScript. Ci sono altre indagini molto popolari come il sondaggio per sviluppatori di stackoverflow con oltre 100.000 intervistati e anche lo State of Developer Ecosystem Report di Jetbrain con oltre 6.000 intervistati, ma oggi ci concentreremo sul sondaggio State of JS.
Facciamo una rapida panoramica di questi framework di test nell’ordine in cui sono stati visualizzati nel sondaggio State of javascript 2018.
Suggerimento: quando si lavora con i componenti (React, ES6 ecc.) utilizzare Bit per condividere, organizzare e riutilizzare facilmente tra le app per costruire più velocemente. Potete anche usarlo per testare individualmente i componenti nel cloud, prima di usarli. Provalo.
Jest
Jest, probabilmente uno dei più popolari framework di test javascript con oltre 22.000 ⭐️ su github è stato costruito ed è costantemente mantenuto dal team di Facebook. È un framework di test javascript a configurazione zero raccomandato da React e anche il più facile da usare. Jest ha un tasso di accettazione molto impressionante nel 2018 da parte della comunità javascript.
È molto performante, con un’interfaccia utente univoca e comoda. Viene fornito con spie e mock e crea globalmente test per impostazione predefinita. Prevede anche test di snapshot e dispone di uno strumento integrato di copertura del codice. È incredibilmente veloce e una delle migliori opzioni per i principianti che vogliono testare il loro codice javascript. C’è anche una tonnellata di risorse disponibili online su Jest.
Mocha
Mocha con oltre 16.000 ⭐️ su github è il framework di test javascript più usato da anni ormai. Viene utilizzato con asserzioni di terze parti, mocking e strumenti di spionaggio come chai o enzyme. A parte il massiccio ecosistema, Mocha ha opzioni ben consolidate con una grande documentazione. È molto flessibile e aperto a molte estensioni.
Anche se stiamo vedendo una piccola deriva di dominanza da Mocha a Jest, ma Mocha è ancora lo strumento di test più usato e la libreria più dipendente e gli sviluppatori javascript non lo stanno ancora lasciando andare principalmente a causa della ricchezza di libertà e flessibilità che deriva dall’uso di Mocha. La comunità di Mocha è molto massiccia e ci sono tonnellate di risorse là fuori sull’uso e sui casi d’uso.
Jasmine
Jasmine è universalmente noto come il framework di test che è ufficialmente raccomandato da Angular per gli sviluppatori da usare, il framework Jest è stato costruito sulla base di Jasmine. Con oltre 14.000 ⭐️ su github Jasmine è uno dei framework più popolari per testare javascript, è anche uno dei più vecchi con più risorse e supporto della comunità. Gli sviluppatori di Angular lo troverebbero facile da usare e integrare, dato che anche la documentazione ufficiale di Angular suggerisce di usare Jasmine. È molto facile iniziare, questa è probabilmente una delle cose che ha ispirato Jest. Nel 2018 secondo il sondaggio, vediamo uno spostamento nell’uso di Jasmine a Jest e anche più applicazioni react che vengono testate da jasmine rispetto a angular.
È molto importante notare che i test per le applicazioni Angular possono essere facilmente eseguiti con Jest ed è praticamente solo una questione di preferenze.
Karma
Karma con oltre 10.000 ⭐️ su github è una sorta di framework di test javascript di uso generale. Potete eseguire i test nel vostro browser o in ambienti simili al browser come jsdom. C’è il supporto per strumenti di integrazione continua come Travis e Jenkins, i test possono essere eseguiti su dispositivi reali o su un’istanza di PhantomJs senza testa. È agnostico dal punto di vista del framework, quindi puoi descrivere i tuoi test con Jasmine, Mocha o scrivere un semplice adattatore per qualsiasi framework tu voglia.
I test possono anche essere eseguiti in remoto dal tuo terminale o IDE o usando servizi come BrowserStack.
AVA
AVA con oltre 15.000 ⭐️ su github è attualmente il framework di test javascript più minimalista là fuori che esegue test in parallelo. AVA è un test runner per Node.js con un’API concisa, un output di errore dettagliato, l’abbraccio di nuove caratteristiche del linguaggio e l’isolamento dei processi che ti permettono di scrivere test in modo più efficace.
Viene fornito con il supporto per test snapshot e typescript ed esegue i test in modalità watch rendendolo davvero veloce; fornisce anche un ambiente isolato per ogni file di test. È facile iniziare e ha una collezione di risorse disponibili online.
Cypress
Con oltre 9.000 ⭐️ su github, Cypress è uno strumento di test javascript molto veloce e affidabile. Fondamentalmente inietta i test in un’applicazione web, fornisce una documentazione molto chiara ed estesa ed è in costante competizione con un altro framework di test TestCafe.
Ha anche il supporto per Mocha e ha un ottimo modo di registrare i risultati dei test in una dashboard e un facile debug. È il framework di test da tenere d’occhio nel 2019 con un tasso di accettazione in crescita massiccia.
Puppeteer
Con oltre 43.000 ⭐️ su github, Puppeteer costruito dal team di Google è una libreria Node che fornisce una API di alto livello per controllare Chrome o Chromium tramite il protocollo DevTools. Puppeteer viene eseguito senza testa per impostazione predefinita, ma può essere configurato per eseguire Chrome o Chromium completi (non senza testa).
È nuovo nella scena dei test, ma ha già un sacco di sviluppatori che lo usano (grazie Google!) È anche piuttosto veloce, dal momento che è nativo, attualmente non supporta molte estensioni, ma il futuro è davvero luminoso e promettente.
QUnit
Con oltre 3.700 ⭐️ su github, QUnit è un framework di test unitario JavaScript che è stato originariamente sviluppato per testare jQuery, jQuery UI e jQuery Mobile, è un framework generico per testare qualsiasi codice JavaScript. Supporta ambienti client-side nei browser web e server-side.
QUnit è simile ad altri framework di test unitari come JUnit, ma fa uso delle caratteristiche che JavaScript fornisce e aiuta a testare il codice nel browser, come il supporto integrato per l’asincronicità e la gestione delle eccezioni.
Chai
Con 6.000 ⭐️ su github, Chai è una libreria di asserzioni di Behaviour-Driven Development e Test-driven development, simile al built-in di Node assert
. Rende i test molto più facili dandovi un sacco di asserzioni che potete eseguire contro il vostro codice. Viene fornito con il supporto per qualsiasi altro framework di test come Mocha.
TestCafe
TestCafe con oltre 5.900 ⭐️ su github, è un framework node utilizzato per il test di applicazioni javascript end to end. Viene fornito con supporto typescript e ha un’interfaccia molto bella per la registrazione dei risultati dei test.
Esegue su tutti gli ambienti popolari tra cui Windows, MacOS e Linux. Supporta browser desktop, mobili, remoti e cloud (UI o headless). Ha anche una documentazione molto elaborata e una comunità in crescita.