Mocha y Chai son marcos de prueba muy populares en JavaScript que permiten crear pruebas unitarias y de comportamiento para tu código. Mocha proporciona la estructura general de la prueba, mientras que Chai ofrece varias opciones de aserciones que puedes utilizar para validar tus resultados.
A continuación, te proporcionaré tres ejemplos prácticos de cómo podrías utilizar Mocha y Chai para probar algunas funciones en JavaScript.
Ejemplo 1: Probar una función suma
Imagina que tienes una función sencilla que suma dos números. Querrás asegurarte de que devuelva el resultado correcto.
// La función que quieres probar
function suma(a, b) {
return a + b;
}
// Ahora, la prueba
const chai = require('chai');
const expect = chai.expect;
describe('suma()', function() {
it('debe devolver la suma de dos números', function() {
expect(suma(1, 2)).to.equal(3);
expect(suma(-1, -2)).to.equal(-3);
expect(suma(-1, 1)).to.equal(0);
});
});
Ejemplo 2: Probar una función que devuelve un array
En este caso, tienes una función que devuelve un array de números del 1 al N.
// La función que quieres probar
function generarNumeros(n) {
const numeros = [];
for(let i=1; i<=n; i++) {
numeros.push(i);
}
return numeros;
}
// Ahora, la prueba
const chai = require('chai');
const expect = chai.expect;
describe('generarNumeros()', function() {
it('debe devolver un array con los números del 1 al N', function() {
expect(generarNumeros(5)).to.deep.equal([1, 2, 3, 4, 5]);
expect(generarNumeros(3)).to.deep.equal([1, 2, 3]);
});
});
Ejemplo 3: Probar una función asíncrona
Imagina que tienes una función que devuelve una promesa. Podrías querer probar si se resuelve correctamente.
// La función que quieres probar
function promesa() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("¡Promesa resuelta!");
}, 1000);
});
}
// Ahora, la prueba
const chai = require('chai');
const expect = chai.expect;
describe('promesa()', function() {
it('debe resolver la promesa correctamente', async function() {
const resultado = await promesa();
expect(resultado).to.equal("¡Promesa resuelta!");
});
});
Estos son sólo algunos ejemplos de cómo podrías utilizar Mocha y Chai para probar tu código JavaScript. Hay muchas otras aserciones y características que podrías utilizar, dependiendo de tus necesidades.