Testeando con mocha y expect.js
Este post no es para nada académico, ni busca explicar lo que es el unit testing, el TDD ni BDD; más que nada quería compartir mi experiencia usando estas bibliotecas por primera vez.
A la hora de probar en el client side/browser, ya había tenido un paso muy fugaz usando QUnit, pero después de escuchar hablar mucho de mocha, le dimos una oportunidad.
Junto con mocha, usamos expect.js para tener las assertions al mejor estilo BDD. Como resultado, los tests fueron mucho más expresivos y descriptivos.
El paso a paso para arrancar a usarlo:
1 – Escribir un archivo html que va a ser el encargado de correr los tests. Éste va a referenciar a los estilos y javascript de mocha, el javascript que contenga nuestro código, y el javascript que contenga las pruebas. También vamos a estar referenciando a expect.js (aunque no es requerido para usar mocha). Tal cual se describe en la documentación.
2 – Crear y editar los archivos que contienen los casos de prueba. En este caso, el archivo sería misTests.js
3 – Para ejecutar los tests y visualizar los resultados, abrir el archivo html del paso 1.
Para ilustrar un poco más cómo se pueden ver las pruebas, imaginemos que estamos desarrollando un juego y tenemos una clase Personaje que tiene un método para agregar un ítem a su inventario ( yo sé que les gusta el spanglish en el código ).
Para ver la lista de assertions que tenemos disponible en expect-js, consultar la documentación. Las llamadas a describe e it que vemos en el código existen gracias a al setup(‘bdd’) que mencionamos antes en el html.
De la forma en que estructuro los tests en mi caso es de la siguiente:
Una vez que estén los tests escritos, abriendo el html seríamos capaces de ver los tests que pasaron, los que fallaron, y los que están pendientes.
En fin, lo que me es más novedoso acá es la forma de hacer las assertions + la forma bdd de diagramar los tests, gracias a lo que muchas veces, leer una prueba de éstas puede llegar a ser como leer un texto en inglés o español.
Comenten!