Conceptos como TDD o BDD se están haciendo hueco dentro de las metodologías de desarrollo. Cada día aparecen más soluciones orientadas a ellos. Una de estos tipos de soluciones es Karma.js. Karma se encarga de ejecutar los test de Javascript según se vayan construyendo, de tal forma que ante cualquier fallo el desarrollador se dará cuenta de inmediato.
Instalando Karma.js
Para instalar Karma.js necesitaremos tener instalado Node.js y usar su gestor de packages para instalar los siguientes módulos.
npm install karma npm install karma-cli
Una vez realizada la instalación hay que ejecutar el comando karma init desde la consola.
karma init
Este comando solicitará una serie de información asignando un valor por defecto. Es posible aceptar todos los parámetros exceptuando la carpeta en la cual se almacenan los test .
Karma.js se configura con Jasmine.js como framework de testing salvo que se decida lo contrario. Definida la carpeta de los test, el siguiente paso es construir varios. Para ello nos apoyaremos en los propios ejemplos de Jasmine.
describe("Ejemplo test", function() { it(" matcher verdadero", function() { expect(true).toBe(true); }); });
Construido el primer test y salvado es momento de arrancar Karma.js a traves del comando:
karma start
Se puede observar como el primer test se ejecuta correctamente. Añadimos un nuevo test y salvamos.
describe("Ejemplo test", function() { it(" matcher verdadero", function() { expect(true).toBe(true); }); it("matcher no verdadero", function() { expect(false).not.toBe(true); }); });
Al salvar el fichero, Karma.js se dará cuenta de los cambios y volverá a ejecutar la batería de test.
Ambos test se ejecutan correctamente, es momento de añadir un último que falle.
describe("Ejemplo test", function() { it(" matcher verdadero", function() { expect(true).toBe(true); }); it("matcher no verdadero", function() { expect(false).not.toBe(true); }); it(" matcher verdadero falla", function() { expect(false).toBe(true); }); });
Al salvar el fichero Karma.js lo ejecutará y se podrá ver que rapidamente el error.
Poco a poco estas herramientas se están haciendo un hueco en el universo de Javascript.
En GenBeta Dev | Empezando con Angular 2