npm install -g mocha (por medio de la línea de comandos)
Una vez instalado el paquete ya se pueden hacer las pruebas unitarias, pero antes de eso se debe brindar conceptos con sus respectivos ejemplos para entenderlos de una mejor manera.
Por medio de la línea de comandos ejecutamos las siguientes sentencias mkdir PU_Mocha usas tu editor favorito en mi caso uso “gvim” y creó el archivo llamado “prueba.js”
Ejemplo:
var assert = require("assert");
describe("Cadenas",function(){
describe("subcadenas",function(){
it('deberia retornar una sub cadenas',function(){
assert.equal("Bello","Panama es Bello".substring(10,15));
})
})
});
Explicación:
Una vez escrita la prueba unitaria ejecutamos el siguiente comando “mocha prueba.js” y se presenta una salida como en la siguiente imagen.

La primera línea de código llama a la librería “assert” para tener una variable y poder realizar las afirmaciones.
La segunda línea describe un módulo llamado “Cadenas” esto quiere decir que dentro del mismo se manipulan cadenas de caracteres.
La tercera línea describe un submódulo llamado “subcadenas” para referirse que las pruebas unitarias dentro de él serán respecto a las mismas.
La cuarta línea describe el nombre de la prueba unitaria.
La quinta línea verifica si la subcadena se encuentra dentro de la cadena.
Para el siguiente ejemplo utilizaremos una librería de afirmaciones que en este caso es la gran y famosa “should.js” y se instalará de la siguiente forma npm install should.
Ejemplo:
var should = require("should");
describe("Cadenas",function(){
describe("subcadenas",function(){
it('usando la libreria should',function(){
'Panama es Bello'.substring(10,15).should.equal('Bello');
});
});
});
Explicación:
La primera línea incluye la librería should, qué es con la ejecutaremos la prueba unitaria.
La quinta línea es donde es donde se ejecuta la prueba de la subcadena mediante la variable “should”
Este ejemplo muestra lo sencillo que es poder usar esta gran librería.
Ejemplo:
describe('calculadora', function(){
var a,b;
beforeEach(function(){
a = 4;
b = 2;
});
describe('operaciones básicas' ', function(){
it('suma',function(){
assert.equal(a + b,6);
});
it('resta',function(){
assert.equal(a - b,2);
});
});
});
Explicación:
El ejemplo muestra que las variables “a” y “b” adquieren sus respectivos valores cada vez que se ejecuta una prueba unitaria y no hay necesidad de crear variables por cada prueba. Es una manera más sencilla de poder realizar el trabajo.
Ejemplo:
describe('Calculadora',function(){
var a,b;
beforeEach(function(){
a = 4;
b = 2;
});
describe('operaciones basicas 1',function(){
it('suma',function(){
assert.equal(a + b,6);
});
it('resta',function(){
assert.equal(a - b,2);
});
});
describe.only('operaciones basicas 2',function(){
it('multiplicacion',function(){
assert.equal(a * b,8);
});
it('division', function(){
assert.equal(a / b, 2);
});
});
});
Explicación:
La palabra reservada “only” es la que nos permite solo ejecutar el modulo llamado “operaciones básicas 2” lo que quiere decir que solo se ejecuta solo dos pruebas unitarias.
Ejemplo:
describe('calculadora',function(){
describe('operaciones especiales',function(){
it('raiz cuadrada',function(){
assert.equal(Math.sqrt(16),4);
});
it.only('exponentes',function(){
assert.equal(Math.pow(4,2),16);
});
});
});
Explicación:
Dentro del módulo llamado “operaciones especiales” solamente se ejecuta la prueba unitaria de “exponentes” porque tiene la palabra reservada “only”. Algo muy bueno dentro de este framework.
Ejemplo:
describe('Gestion de cadenas',function(){
describe.skip('subcadenas',function(){
it('prueba de subcadena',function(){
assert.equal("Bella","Panama es Bella".substring(10,15));
});
});
describe('contador',function(){
it('cantidad de caracteres',function(){
assert.equal("Panama es Bella".length,15);
});
});
});
Explicación:
Al ejecutar este código en la consola se muestra un mensaje de que existen pruebas unitarias pendientes, gracias a la palabra reservada “skip” en el módulo llamado “subcadenas”.
Ejemplo:
describe('Gestion de cadenas',function(){
describe('subcadenas',function(){
it('prueba de subcadena',function(){
assert.equal("Bella","Panama es Bella".substring(10,15));
});
});
describe('contador',function(){
it.skip('cantidad de caracteres',function(){
assert.equal("Panama es Bella".length,15);
});
});
});
Explicación:
Con el ejemplo siempre quedará una prueba unitaria pendiente que es la llamada “cantidad de caracteres” la cual tiene la palabra reservada “skip”.
Con lo poco que se ha podido ver de “Mocha” se puede llegar a la conclusión que sería una buena herramienta para implementarla en nuestros proyectos personales como también en nuestros proyectos para clientes, además que tiene un rango de facilidades para los gustos de muchos programadores, en mi opinión personal este framework tiene un buen futuro por delante y solo esperar que de nuevo nos traerá el gran “Mocha”. Solo falta decir “Happy Testing”.