Respostas:
Acabei usando a unidade do nó e estou muito feliz com isso.
Eu estava usando o Expresso originalmente, mas o fato de ele executar testes em paralelo causou alguns problemas. (Por exemplo, o uso de acessórios de banco de dados não funciona bem nessa situação).
.done()
imho.
.done()
para acomodar testes assíncronos. Concordo que às vezes pode ser um pouco pesado, mas há uma boa razão para fazê-lo dessa maneira.
Eu também estava procurando uma estrutura de teste decente para o nó e encontrei o Mocha . É o sucessor oficial do Expresso e parece muito maduro.
Ele permite conectar diferentes bibliotecas de asserções, oferece repórteres para cobertura de código e outras coisas (você pode conectar por conta própria). Pode executar sincronização ou assíncrona e possui uma API concisa.
Vou tentar e informar de volta ...
Depois de um tempo incrível dedicado a outros projetos, finalmente voltei a um projeto Javascript e tive tempo para brincar com o mocha. Eu posso recomendar seriamente usá-lo. Os testes são lidos muito bem, a integração com o gulp é ótima e os testes são executados muito rapidamente. Consegui configurar as execuções de teste automáticas autônomas e no navegador (browserify) e os relatórios de cobertura de código correspondentes em cerca de meio dia (a maior parte do tempo gasto na compreensão de como usar o browserify a partir do gulp). Para mim, o mocha parece uma escolha muito boa para uma estrutura de teste.
Eu ainda estou muito convencido sobre Mocha. A integração com o chai permite conectar diferentes estilos de asserção. Você pode verificar uma configuração de trabalho neste projeto do github . Estou usando agora com karma, integrando relatório de cobertura de código, observadores automáticos e boa integração com o IntelliJ
Pessoalmente, usei apenas o módulo assert, mas também me vejo querendo mais. Examinei muitos módulos de nós e as estruturas populares de teste de unidade são unidades de nó e devem (que são feitas pelo mesmo cara que o Expresso (talvez um nome atualizado?)
Os votos também parecem promissores.
Pessoalmente, eu fiquei com o Expresso , mas existem várias estruturas diferentes por aí, acomodando a maioria dos estilos de teste.
Joyent tem uma extensa lista ; dê uma chance.
votos é uma sólida biblioteca de testes de unidades para o node.js, mas a sintaxe é tediosa.
Eu escrevi uma abstração fina chamada votos-fluente, que torna a API encadeada.
E escrevi outra abstração, [votos-is], que se baseia em votos fluentes e expõe uma sintaxe no estilo BDD.
Um exemplo seria
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
});
Eu acho que, dentre as várias estruturas de teste disponíveis, o mocha é o mais recente e muito simples de implementar. Aqui está um maravilhoso tutorial sobre como usá-lo: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
Se você estiver familiarizado com o QUnit , poderá usar o node-qunit, que é uma espécie de wrapper de nó em torno da estrutura existente do QUnit.
Originalmente criada para o node.js., o deadunit é uma biblioteca de testes de unidade javascript para o node.js. e o navegador. Alguns de seus atributos exclusivos:
count
asserção simples que facilita o tratamento de exceções esperadas e assíncronas.Acabei de enviar um projeto que estou usando para testar a unidade nodejs com karma e Jasmine: narma . Os módulos do nó são carregados em um navegador nodewebkit para que você possa executar os módulos do nó e usar bibliotecas como jquery na mesma pilha.
O test-studio é um pacote npm que fornece um poderoso front end baseado na Web para testes de unidade. Ele suporta coisas como executar individuais ou grupos de testes e inserir o inspetor de nós em testes individuais. Atualmente, ele suporta mocha e mais estruturas serão suportadas no futuro, sob demanda.
Leia mais sobre isso aqui .
Disclaimer: Eu sou o autor.