Introducción a las pruebas
La complejidad de las nuevas aplicaciones hacen que el proceso de pruebas de las nuevas características sea muy difícil de llevar de forma manual, esto implica que por cada funcionalidad que hagamos debemos probar que todo lo existente funcione y que lo nuevo no haga que haya una falla sobre las cosas ya probadas, si a esto sumamos el que todo debe funcionar en todos los navegadores estamos ante un nivel de complejidad bastante extenso..
Afortunadamente con el nacimiento de la cultura de desarrollo ágil también se ha incorporado algunas herramientas que hacen que las pruebas sean automatizadas, esto se lleva a cabo en casi todos los lenguajes modernos y por supuesto tenemos una batería de herramientas para nuestro entorno de desarrollo en AngularJS.
En esta sección vamos a ver en detalle lo que tiene AngularJS en materia de pruebas automatizadas disponible para que podamos tener una idea de que dirección podemos tomar.
Desarrollo llevado por pruebas TDD
Antes de ver que tenemos disponible para utilizar en AngularJS vale la pena repasar un poco el concepto del TDD o desarrollo llevado o conducido por pruebas, es una metodología de desarrollo ágil en la cual primero construimos la prueba para que falle y luego hacemos el desarrollo de la aplicación hasta que la prueba deja de fallar.
La ventaja de este proceso es que cada línea de código que hagamos tiene un propósito, evitando así la poca eficiencia, además que las funcionalidades estarán más claras al saber que debemos hacer exactamente.
Karma
Karma es una herramienta desarrollada para correr bajo la plataforma ofrecida por node.js y complementado con Socket.io, y nos permite correr sets de pruebas de forma automatizada y bajo varios navegadores.
Su instalación es muy sencilla, utilizando el manejador de paquetes de node.js npm podemos hacer lo siguiente:
npm install -g karma
Con ello npm se encargará de obtener todo lo necesario para que karma corra en nuestro entorno, luego podemos iniciar el servicio utilizando la siguiente instrucción:
karma init
Esto hace que el servicio inicie por defecto en el puerto 9876, así que al levantar un navegador con la url: localhost:9876 podemos ver algo como esto:
Lo cual nos indica que el servidor de pruebas está funcionando de forma correcta, ya con ello podremos construir el set de pruebas para las diferentes funcionalidades de nuestras aplicaciones.
Con esto finalizamos esta sección, como vemos el proceso de desarrollo de una aplicación moderna va más allá de simplemente utilizar las nuevas herramientas, hay un proceso metodológico por detrás que si lo seguimos de forma adecuada nos ayudará con desarrollos que de otra forma seria muy complejo y costoso de lograr.