Risposte:
Ho finito per usare l' unità-nodo e ne sono davvero contento.
Inizialmente stavo usando Expresso ma il fatto che eseguisse dei test in parallelo ha causato alcuni problemi. (Ad esempio l'utilizzo di dispositivi di database non funziona bene in questa situazione).
.done()
imho.
.done()
test asincroni. Sono d'accordo che a volte può essere un po 'ingombrante, ma ha un ottimo motivo per farlo in questo modo.
Stavo anche cercando un framework di test decente per il nodo e ho trovato Mocha . È il successore ufficiale di Expresso e sembra molto maturo.
Permette di collegare diverse librerie di asserzioni, offre ai giornalisti la copertura del codice e altre cose (è possibile collegare le proprie). Può eseguire la sincronizzazione o l'asincronizzazione e ha un'API concisa.
Ci proverò e riporterò indietro ...
Dopo un'incredibile quantità di tempo dedicata ad altri progetti, sono finalmente tornato a un progetto Javascript e ho avuto il tempo di giocare con la moka. Posso seriamente raccomandare di usarlo. I test sono letti molto bene, l'integrazione con gulp è ottima e i test funzionano molto velocemente. Sono stato in grado di impostare esecuzioni di test automatiche stand-alone, interne al browser (browserify) e relativi rapporti di copertura del codice in circa mezza giornata (la maggior parte del tempo speso per capire come usare browserify da gulp). Per me, la moka sembra un'ottima scelta per un framework di test.
Sono ancora molto convinto di Mocha. L'integrazione con chai consente di inserire diversi stili di asserzione. Puoi verificare una configurazione funzionante in questo progetto github . Lo sto usando con karma ora, integrando il rapporto sulla copertura del codice, gli osservatori automatici e una buona integrazione con IntelliJ
Personalmente ho usato solo il modulo assert, ma mi ritrovo anche a desiderare di più. Ho guardato attraverso molti moduli di nodo e i framework di test di unità popolari sono nodi-unità e dovrebbero (che è fatto dallo stesso ragazzo di Expresso (forse un nome aggiornato?)
Anche i voti sembrano promettenti.
Personalmente mi sono bloccato con Expresso , ma ci sono un sacco di diversi framework là fuori, che soddisfano la maggior parte degli stili di test.
Joyent ha un ampio elenco ; provaci.
i voti è una libreria di test di unità solide per node.js ma la sintassi è noioso.
Ho scritto una sottile astrazione chiamata voti fluenti che rende l'API concatenabile.
E ho scritto un'altra astrazione, [voti-è] che si basa su voti fluenti ed espone una sintassi in stile BDD.
Un esempio sarebbe
var is = require("vows-is");
is.suite("testing is fun").batch()
.context("is testing fun?")
.topic.is("yes")
.vow.it.should.equal("yes")
.suite().run({
reporter: is.reporter
});
Penso che tra i vari framework di test disponibili, la moka sia la più recente e molto semplice da implementare. Ecco un meraviglioso tutorial su come usarlo: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
Se si ha familiarità con QUnit , è possibile utilizzare node-qunit che è una sorta di wrapper di nodo attorno al framework esistente di QUnit.
Originariamente creata per node.js, deadunit è una libreria di test di unità javascript per node.js e il browser. Alcuni dei suoi attributi unici:
count
affermazione che semplifica la gestione delle eccezioni attese e delle asserzioni asincroneHo appena caricato un progetto che sto usando per testare unit nodejs con karma e Jasmine: narma . I moduli del nodo vengono caricati in un browser nodewebkit in modo da poter eseguire i moduli del nodo e utilizzare librerie come jquery nello stesso heap.
test-studio è un pacchetto npm che fornisce un potente front-end basato sul web per i test delle unità. Supporta cose come l'esecuzione di singoli o gruppi di test e l'inserimento di nodi-ispettori in test individuali. Attualmente supporta la moka e saranno supportati più framework nella domanda futura.
Leggi di più qui .
Disclaimer: sono l'autore.