Come si decide quale framework di test utilizzare?

8

La situazione è questa.

Sono uno sviluppatore junior per un piccolo progetto IT governativo. Non abbiamo nulla di integrazione continua o un framework di test automatizzato. Ma l'idea è di sviluppare questo tipo di cose / migliorare il nostro ambiente di sviluppo.

Il prodotto è un algoritmo di elaborazione dei dati che visualizza le informazioni all'utente finale tramite una webapp.

Quindi è in arrivo un sacco di lavoro per modificare la webapp javascript. In quanto tale, vogliamo implementare un test unitario per il javascript.

Ho esaminato questa domanda di overflow dello stack che descrive diversi quadri di test unitari per javascript.

La domanda è: come posso decidere tra quale framework utilizzare?

  • Che cos'è un elenco di criteri per la scelta di un framework di test?
  • È pratico provarli tutti?
  • Trascorri molto tempo a leggere i forum / etc su come vengono utilizzati?
posta dwjohnston 20.01.2014 - 02:18
fonte

1 risposta

13

Che cos'è un elenco di criteri per la scelta di un framework di test?

1) Sintassi

Mentre indaga su diversi framework di test, noterai che la sintassi è un fattore di differenziazione tra tutti loro. Questo dipenderà davvero da cosa ti fa sentire a tuo agio.

Ad esempio, qUnit è più di un framework di test dichiarativo. La sua API consiste in funzioni chiamate test, equals, strictEqual, deepEqual, ecc.

Un'altra struttura di test, mocha , è più simile a rspec in quanto legge in una struttura più simile a una frase. La sua API è costituita da funzioni chiamate descrip, it, assert.equal, ecc.

La mia preferenza personale è una struttura simile a qunit.

2) Funzionalità - Stub, Spie, server falso, orologio falso, ecc

Quando inizi a testare in Javascript ti troverai rapidamente in situazioni in cui hai bisogno del tuo framework di test per aiutarti a testare determinati casi d'uso. Ad esempio:

Spie: questo ti aiuterà a scoprire se il tuo codice ha chiamato una funzione quando dovrebbe avere

Stub - Molto simile a una spia tranne che contiene un comportamento predefinito (Esempio: quando viene chiamato lo stub, return foo)

Fake Server - Se il tuo codice emette chiamate AJAX e vuoi falsificare la risposta della chiamata AJAX, un server falso ti aiuterà a testare più facilmente.

Fake Clock - Se il tuo codice reagisce in modo diverso in base alla data o all'ora, un falso orologio ti aiuterà a controllare esattamente a che ora è mentre il test è in esecuzione.

La mia raccomandazione per un framework Javascript che supporta tutte le funzionalità di cui sopra è Sinon.JS . Perché mi piace una qunit come sintassi e framework, io uso qunit AND Sinon.JS. qunit gestisce le mie asserzioni e esegue i miei test. Sinon.JS mi dà la possibilità di mozzare, spiare, eseguire un server falso e falsificare l'orologio.

3) Supporto della community

Il tuo framework di test è supportato dalla community? Ad esempio, grunt (uno strumento dell'ambiente di costruzione) supporta l'esecuzione di qunit in un server PhantomJS senza testa: link . In questo modo è facile scrivere test e farli automaticamente eseguire ogni volta che salvi il file di test.

È pratico provarli tutti? No, non è pratico. Cerca invece il sito web di ciascun framework e sceglierne uno con cui ti trovi a tuo agio e uno che ti supporterà anche durante i test di scrittura.

Trascorri molto tempo a leggere i forum / etc su come vengono utilizzati? Prendi un libro sulla struttura che hai scelto e sfogliatelo mentre ne hai bisogno.

    
risposta data 20.01.2014 - 11:39
fonte

Leggi altre domande sui tag