unit test nodejs node framework before async javascript unit-testing node.js

javascript - nodejs - Node.js Unit Testing



node test before (11)

Acabo de subir un proyecto que estoy usando para probar unit nodejs con karma y Jasmine: narma . Los módulos de nodo se cargan en un navegador nodewebkit para que pueda ejecutar módulos de nodo y usar bibliotecas como jquery en el mismo montón.

¿Hay algún buen framework de pruebas de unidades node.js (server side js) actualmente? Estoy buscando algo un poco más profundo que el módulo Assert proporcionado.




Originalmente creado para node.js, deadunit es una biblioteca de pruebas de unidades de JavaScript para node.js y el navegador. Algunos de sus atributos únicos:

  • Curva de aprendizaje fácil
  • Puede dar salida a los resultados de la prueba en la línea de comando (en color o texto sin formato) o como html
  • Imprime las líneas de código reales donde se encuentran sus aserciones, por lo que su resultado tiene sentido, incluso si no pasa mucho tiempo escribiendo comentarios de prueba
  • Tiene una simple afirmación de count que facilita el tratamiento de las excepciones esperadas y las asincrónicas
  • imprime excepción y cualquier dato adjunto que tengan
  • te avisará si tu código está bloqueado (algo que no quieres, pero que normalmente pasa desapercibido)
  • Tiene una API impulsada por eventos que permite la transmisión de resultados de pruebas a través de una red, o de cualquier forma que desee.
  • Admite pruebas con node-fibers

Personalmente, me he quedado con Expresso , pero hay muchos frameworks diferentes que se adaptan a la mayoría de los estilos de prueba.

Joyent tiene una extensa lista ; dale una oportunidad.


Personalmente, solo he usado el módulo afirmar, pero también me encuentro queriendo más. He revisado muchos módulos de nodos y los frameworks de pruebas de unidades populares son node-unit y should (que está hecho por el mismo tipo que Expresso (¿quizás un nombre actualizado?)

Vows también parecen prometedores.


Si está familiarizado con QUnit , podría usar node-qunit que es una especie de contenedor de nodos alrededor del marco existente de QUnit.


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 afirmaciones, ofrece reporteros para la cobertura del código y otras cosas (puede conectar el suyo propio). Puede ejecutar sync o async y tiene una API concisa.

Lo probaré e informaré ...

EDITAR:

Después de una increíble cantidad de tiempo dedicado a otros proyectos, finalmente volví a un proyecto de Javascript y tuve tiempo de 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 versiones de prueba automáticas independientes e in-browser (browserify) e 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 gulp). Para mí, mocha parece una muy buena opción para un marco de prueba.

ACTUALIZAR:

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


Terminé usando node-unit y estoy muy contento con él.

Estaba usando Expresso originalmente, pero el hecho de que ejecuta pruebas en paralelo causó algunos problemas. (Por ejemplo, el uso de accesorios de base de datos no funciona bien en esta situación).


Vows es una biblioteca sólida de pruebas unitarias para node.js, pero la sintaxis es tediosa.

He escrito una abstracción delgada llamada vows-fluent que hace que la API se pueda encadenar.

Y he escrito otra abstracción, [votos-es] que se basa en votos-fluido 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 });

Más ejemplos


test-studio es un paquete npm que proporciona un front-end potente basado en web para pruebas unitarias. Es compatible con cosas como la ejecución de pruebas individuales o grupales y el paso de inspector de nodos en pruebas individuales. Actualmente es compatible con mocha y se admitirán más marcos en futuras demandas.

Lea más sobre esto here .

Descargo de responsabilidad: soy el autor.