Respuestas:
Terminé usando la unidad de nodo y estoy muy contento con él.
Originalmente estaba usando Expresso, pero el hecho de que ejecuta pruebas en paralelo causó algunos problemas. (Por ejemplo, el uso de dispositivos de base de datos no funciona bien en esta situación).
.done()
mi cuenta.
.done()
acomodar pruebas asincrónicas. Estoy de acuerdo en que puede ser un poco difícil de manejar a veces, pero tiene una muy buena razón para hacerlo de esta manera.
También estaba buscando un marco de prueba decente para el nodo y encontré Mocha . Es el sucesor oficial de Expresso y parece muy maduro.
Permite conectar diferentes bibliotecas de aserciones, ofrece a los reporteros cobertura de código y otras cosas (puede conectar la suya propia). Puede ejecutar sync o async y tiene una API concisa.
Lo intentaré e informaré ...
Después de una increíble cantidad de tiempo dedicado a otros proyectos, finalmente volví a un proyecto de Javascript y tuve tiempo para jugar con mocha. Puedo recomendar seriamente usarlo. Las pruebas se leen muy bien, la integración con gulp es excelente y las pruebas se ejecutan muy rápido. Pude configurar ejecuciones de pruebas automáticas independientes y en el navegador (browserify) y los informes de cobertura de código correspondientes en aproximadamente medio día (la mayor parte del tiempo dedicado a comprender cómo usar browserify desde el trago). Para mí, el mocha parece una muy buena opción para un marco de prueba.
Todavía estoy muy convencido de Mocha. La integración con chai permite agregar diferentes estilos de afirmación. Puede verificar una configuración de trabajo en este proyecto github . Lo estoy usando con karma ahora, integrando el informe de cobertura de código, observadores automáticos y una buena integración con IntelliJ
Personalmente solo he usado el módulo de afirmación, pero también me encuentro con ganas de más. He examinado muchos módulos de nodos y los marcos de prueba de unidades populares son unidad de nodo y deberían (que está hecho por el mismo tipo que Expresso (¿tal vez un nombre actualizado?)
Los votos también parecen prometedores.
Personalmente me he quedado con Expresso , pero hay un montón de marcos diferentes, que se adaptan a la mayoría de los estilos de prueba.
Joyent tiene una extensa lista ; dale una oportunidad.
votos es una biblioteca de prueba de unidad sólida para node.js pero la sintaxis es tediosa.
He escrito una fina abstracción llamada votos fluidos que hace que la API sea encadenable.
Y he escrito otra abstracción, [votos-es] que se basa en los votos-fluidos y expone una sintaxis de estilo BDD.
Un ejemplo sería
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
});
Creo que entre los diversos marcos de prueba disponibles, mocha es el más reciente y muy sencillo de implementar. Aquí hay un tutorial maravilloso sobre cómo usarlo: http://thewayofcode.wordpress.com/2013/04/21/how-to-build-and-test-rest-api-with-nodejs-express-mocha/
Si está familiarizado con QUnit , podría usar node-qunit, que es una especie de envoltorio de nodo alrededor del marco existente de QUnit.
Originalmente hecho para node.js, deadunit es una biblioteca de prueba de unidad javascript para node.js y el navegador. Algunos de sus atributos únicos:
count
afirmación simple que facilita el manejo de excepciones esperadas y afirmaciones asincrónicasAcabo de subir un proyecto que estoy usando para probar unit nodejs con karma y Jasmine: narma . Sus módulos de nodo se cargan en un navegador de nodo web para que pueda ejecutar módulos de nodo y usar bibliotecas como jquery en el mismo montón.
estudio de prueba es un paquete npm que proporciona un potente front-end basado en web para pruebas unitarias. Admite cosas como ejecutar pruebas individuales o grupales y pasar al inspector de nodos en pruebas individuales. Actualmente admite mocha y se admitirán más marcos en la demanda futura dada.
Lea más sobre esto aquí .
Descargo de responsabilidad: soy el autor.