unitarias - Introducción a la prueba unitaria en javascript.
pruebas unitarias node js (5)
Nunca he hecho ninguna prueba en javascript. Sé que sé. Pero la razón es que nunca he creado grandes aplicaciones de javascript antes, así que nunca he visto ninguna razón para entrar en las pruebas.
Pero ahora pensé que ya era hora de ponerse a trabajar.
El único problema es que donde quiera que vaya, cada marco de prueba parece depender del hecho de que las personas ya saben cómo probar con javascript, solo se enfocan en por qué su marco de prueba es mejor que el siguiente.
Lo que me gustaría, es una introducción muy básica a las pruebas con javascript. ¿Cuándo es necesario? ¿Qué deberías probar? ¿Cómo se deben configurar las pruebas? ¿Con qué frecuencia haces la prueba? Ya sabes, solo cosas muy, muy básicas.
Así que cualquier enlace a textos o videos será altamente apreciado (:
Gracias.
Edición: Solo para aclarar: lo que estoy buscando son introducciones a las pruebas, no marcos específicos. Porque en este momento, ni siquiera sé por qué debería probar ...
Y si hay libros sobre el tema, eso sería aún mejor.
2ª edición: Encontré un video muy bonito de Nicholas Zakas en Yahoo! Teatro , donde explica la práctica de TDD para javascript primero, luego explica cómo usar las pruebas YUI para lograr esos objetivos.
Encuentro la comprobación de unidades de Javascript a menudo necesaria en llamadas XHR (AJAX). Escribe pruebas de unidad para afirmar que la respuesta es lo que esperas que sea. El desarrollo guiado por pruebas en el servidor y en el lado del cliente puede ayudarlo a resolver el problema. ¿Se están enviando suficientes parámetros? ¿Hay algo destrozado en el camino? ¿Se está comportando el serializador de la manera que espero? Las pruebas se configuran como en cualquier otro entorno: redúzcalo y simplifíquelo para aislar el problema.
Para cosas muy básicas, le recomiendo que comience a depurar con Firebug (estableciendo puntos de interrupción y similares), y luego pase a la prueba de unidad con Selenium.
Las pruebas unitarias en general le permiten acumular una batería de pruebas pequeñas que verifican los bits de grano fino de su código, especialmente los casos de borde. Esto es especialmente útil en Javascript, donde su aplicación necesita ejecutarse de la misma manera en diferentes plataformas de navegador.
La creación de un conjunto de tales pruebas le permite asegurarse de que los cambios que realice hoy no rompan el código que escribió ayer (o hace un mes).
Por ejemplo, puede tener una parte de su aplicación que recorre todos los nodos DOM en el documento para encontrar y enlazar a los nodos que le interesan. Decide optimizar esto, tal vez utilizando el selector jquery. Si tiene una prueba de que todos los nodos posibles se pueden encontrar correctamente, puede ver rápidamente si los cambios que acaba de realizar rompen algo, en cualquiera de sus navegadores de destino.
También puede "falsificar" las interacciones de XmlHttpRequest con el servidor usando varios marcos, lo que le permite verificar que el código de su cliente puede reaccionar adecuadamente a todo tipo de resultados y errores que vienen de su backend.
Básicamente, al igual que con otros idiomas, las pruebas unitarias en JS le permiten automatizar la respuesta a la pregunta "¿acabo de romper algo" con estos cambios?
Yo recomendaría JSpec . Es un marco de desarrollo conducido por comportamiento y también viene con Screencasts.
JsUnit (ya no se mantiene)
JsUnit es un marco de prueba de unidad para JavaScript del lado del cliente (en el navegador). Esencialmente es un puerto de JUnit para JavaScript. También se incluye una plataforma para automatizar la ejecución de pruebas en múltiples navegadores y máquinas múltiples que ejecutan diferentes sistemas operativos.
La prueba de unidad en javascript, aunque impresionante, probablemente no es el paquete de delicias que la prueba de unidad está en la mayoría de los otros idiomas.
La razón principal de esto es que el javascript depende tanto del navegador en el que se está ejecutando; además, el comportamiento asíncrono es tan ubicuo que puede ser un poco desalentador comenzar con él.
Aquí hay algunas cosas que podrían ayudarlo a comenzar, pero no espere una entrada increíblemente fácil, ni los beneficios inmediatos que otros idiomas tienden a obtener.
John Resig hizo una excelente reseña sobre las limitaciones de las pruebas en javascript que podrían ser un lugar decente para comenzar.
Aquí hay un video sobre cómo comenzar a escribir pruebas para javascript BDD en fireunit.