Marco de prueba de unidad de Javascript

¿Qué marco de prueba de unidad debo elegir para el desarrollo de javascript, si tal cosa existe?

Idealmente debería (en orden aproximado de prioridad):

  • facilitar la prueba repetida de elementos de la interfaz de usuario, como formularios complicados*
  • ser lo más simple posible para crear nuevas pruebas
  • salida sus resultados en un lugar que está bien formateado o es fácil de formatear
  • apoyar el paradigma de desarrollo basado en pruebas
  • encajar con las partes buenas, como lo describe Douglas Crockford
  • juegue bien con herramientas populares como angular, brasa, meteorito y columna vertebral.
  • trabajar con vainilla javascript sin el uso de marcos de terceros como jQuery (aunque se puede hacer un caso sólido para negar este requisito)

Esta es una gran cantidad de 'buenos para tener', considéralo como una lista de deseos ideal, la mejor solución alcanzará a la mayor cantidad posible de estos.

Desde dónde se ejecuta no es un problema realmente, suponga que el desarrollador está en el nivel en el que está bien versado en OOP / js, etc. y en un nivel para abordar seriamente conceptos más avanzados como TDD.

*un ejemplo del mundo real de donde veo que se pueden lograr grandes ganancias de productividad es un formulario con al menos treinta campos en el trabajo que se probó manualmente ~ 1000 o más veces; esto es lo que quiero decir con probar elementos de la interfaz de usuario

Respuestas (4)

Mi equipo usó Jasmine . Es uno de los primeros marcos de prueba de JS que apareció en escena y todavía está en desarrollo activo.

Escribir pruebas con él es fácil, solo se necesitan algunas declaraciones. Si estás haciendo TDD, probablemente sea algo que te importe, ya que no querrás pasar todo tu tiempo escribiendo exámenes, o pronto te cansarás.

Utiliza un poco de estilo funcional, que puede que no sea a lo que está acostumbrado el codificador OOP promedio, pero si está tratando con JavaScript, hay poco escape de él.

No tiene dependencias externas, por lo que no necesita jQuery.

Eche un vistazo al documento y vea si se ajusta a sus necesidades para verificar muchos campos.

Sugeriría mocha , independiente puede admitir todas sus cosas. Puede usarlo nodo con zombiejs (aunque, tenga cuidado, no hay renderizado allí) o usarlo en navegadores con karma .

Recomiendo Cypress, que usamos en un gran proyecto. Cypress se basa en Mocha y agrega suficiente comodidad para permitir que todos nuestros ingenieros de control de calidad escriban pruebas con poca capacitación necesaria.

(Aunque estamos agregando una capa más de abstracción en la parte superior, porque nuestro cuello de botella es la traducción entre los documentos del escenario de prueba y el código de prueba. El nombre en clave de nuestro proyecto es "t modular").

Si Cypress hubiera existido y lo hubiera sabido cuando escribí esta pregunta, ¡no creo que hubiera hecho esta pregunta!

Encontré qUnit perfectamente utilizable.

Muestra los resultados como una página web, aunque supongo que si realmente quisieras, podrías piratearlo para pasar los resultados a otro lugar.