Pruebas unitarias
Una vez que ya tenemos una noción de lo que significa trabajar orientado a pruebas para construir las aplicaciones en AngularJS, debemos entender cómo funciona este mundo de forma más específica, los casos de prueba se llaman pruebas unitarias, esto es debido a que cada prueba va a corresponder a una unidad de nuestra aplicación, así mientras más específicas las pruebas, más confiable es nuestro sistema.
Sin embargo no todo es tan sencillo como parece, estás pruebas tenemos que construirlas, por lo que debemos encontrar un balance entre lo que debemos probar y su grado de especificación, ya que hay elementos que no vale la pena escribir en una prueba, como hay otros que es una obligación hacerlo.
En esta sección veremos un poco como podemos construir las pruebas unitarias en nuestras aplicaciones hechas con AngularJS.
Correr las pruebas
Una de las cosas más importantes cuando estamos estableciendo un entorno de pruebas unitarias es que podemos configurar nuestro ambiente para que cada vez que salvemos nuestros documentos nuestras pruebas puedan correr y darnos el resultado inmediatamente.
Si estamos utilizando Karma para esto podemos establecer en su archivo de configuración la propiedad autoWatch con ello ya Karma sabrá que cada vez que cambie el archivo debe correr las pruebas, esto directamente sin tener que abrir consolas ni navegadores si hemos hecho la integración con nuestro IDE.
Integración con IDEs
La integración de Karma en nuestro IDE de preferencia no tiene porqué ser algo complicado, si bien es cierto que no hay plugins avanzados aún, podemos hacer nuestra pequeña integración al incluir atajos para los comandos básicos que necesitaremos o si estamos trabajando en ambiente eclipse, podemos utilizar la consola que nos ofrece el entorno.
Los comandos que realmente son los más utilizados para acceder a nuestras pruebas de Karma son:
karma start karma run
Cada uno de estos comandos nos permite interactuar con nuestro esquema de pruebas establecido para obtener los resultados de forma rápida y oportuna para continuar con nuestro desarrollo de la aplicación.
Sintaxis básica
La sintaxis básica de las pruebas unitarias en AngularJS no es muy compleja, de hecho podemos escribir la mayoría de los comandos utilizando la forma de Jasmine JS, lo que debemos entender es que casi todos los elementos que vamos a utilizar se estructuran como si estuviésemos leyendo.
AngularJS tiene internamente algunas plantillas que podemos utilizar para incorporar más herramientas en la construcción de nuestras pruebas. Veamos en la siguiente imagen un caso básico de una prueba escrita utilizando la sintaxis de Jasmine JS:
En este sencillo ejemplo contra un controlador de nuestra aplicación vamos a evaluar con la función it() algunas condiciones que si las pasamos nuestra prueba será exitosa, en caso contrario será fallida y tendremos que trabajar en su solución.
Con esto finalizamos este tutorial, hemos visto un poco más a fondo lo que podemos encontrar cuando trabajamos con pruebas unitarias en nuestras aplicaciones hechas en AngularJS.