Marco de testings unitarias para node.js que específicamente admite la testing de código asíncrono?

Hay más de 30 frameworks de testing listdos en la list de modules node.js

¿Qué frameworks son los más populares? ¿Y cuáles son sus pros y contras?

Estoy buscando un marco que admita testings unitarias de código que tenga muchas devoluciones de llamada asincrónicas (probablemente como la mayoría de otros proyectos de nodos). Además, estoy buscando algo bastante simple y pequeño que complejo.

Hasta ahora he investigado:

  • Nodeunit es sencillo y admite el código asynchronous al permitirle definir cuántas aserciones espera recibir y cuándo se realiza una testing.
  • Vowsjs se ve interesante. Le permite estructurar muy bien las testings y viene con muchas características avanzadas. ¿No está seguro de si estas características son realmente útiles o si se interponen en su path?

expresso y votos son las opciones más populares. Aunque hay muchas buenas opciones por ahí. Actualización: a partir de noviembre de 2011, Mocha es el sucesor de expresso , según el file Readme.md en el repository de expresso . should.js se usa a menudo con Mocha para permitir aserciones de estilo BDD.

Elija lo que elija, le recomiendo usarlo con cuidado en los modules centrales o de terceros.

Uso / mantengo la testosterona , un pequeño marco de testing que se ejecuta en serie para poder abusar suavemente. Sin embargo, no mucha gente lo está usando.

Desde marzo de 2012, hemos estado usando Nodeunit y no hemos mirado hacia atrás. Es sencillo y fácil de usar, le permite elegir entre dispositivos de nivel de module y nivel de class (configuration / desassembly), tiene un set razonable de aserciones integradas, y su herramienta de command-line es muy flexible. Intenta combinarlo con nodemon , también.

Vimos un Votos brevemente pero no queríamos una nueva syntax extraña para definir las testings. Todo lo que necesita son afirmaciones, accesorios y un arnés decente, y Nodeunit encaja perfectamente.

Esto es tan simple como se puede get un marco de testing, y admite llamadas asíncronas. Es la herramienta de testing para JQuery, por lo que puede estar seguro de que es altamente compatible y funciona bien.

Puede considerar la integración con Sinon , que es un marco de burla, que en particular le permite simular events asynchronouss. Este tutorial y las otras partes del tutorial vinculadas allí muestran cómo usar Sinon para probar el código asíncrono. Está en el browser, pero debería poder adaptarlo a las aplicaciones de nodo de testing.

Todavía no lo he usado, pero ¿qué pasa con Jasmine de Pivotal Labs?

Enchufe menor para mi propia biblioteca, pero lo más importante es que quiero que otros desarrolladores de arnés piensen en lo que debería ser una testing asincrónica en JS:

Escribí específicamente OKJS porque QUnit era tan inútil asynchronous. Quinit no capta las excepciones (!) Y requiere un inicio hacky () para mantener un logging de la profundidad.

Muchos de los frameworks de testing que existen no tienen un envoltorio de callback simple para probar los times de espera y detectar excepciones. No estoy seguro de por qué los llamados de confianza son el corazón del desarrollo asynchronous. = /

setTimeout(function() { ok( true, "Passed and ready to resume!" ); start(); }, 1000); 

OKJS detecta excepciones en los detectores de events y realiza un seguimiento de las requestes asíncronas pendientes con un desencadenante de hombre muerto interno que puede no pasar la testing.

  setTimeout( unit.callback("test callback is finetworking"), 500); setTimeout( unit.callback("callback finetworking, with subtests", function () { unit.assert("in callback, true === true", true,true); }), 500); 

Me encantaría ver que este estilo sea compatible con las soluciones empresariales. Algunas de las otras características que recomienda OKJS son los bloques de testing que se ejecutan en serie (estilo de receta), pero esperan entre bloques para que se resuelvan los events.

test-studio es un package npm que proporciona un front-end potente basado en web para testings unitarias. Actualmente, solo es compatible con mocha y proporciona elementos como la ejecución de testings individuales o grupales y el paso del inspector de nodos en testings individuales.

Lea más sobre esto aquí .