Scaffolding de pruebas unitarias con JEST en JavaScript

Author
Por Darío Rivera
Publicado el en Javascript

Agregar pruebas a tu software ya no es una curiosidad más de aquellos programadores geeks. En la actualidad se hace cada vez más necesario implementar pruebas automatizadas y que estas estén ligadas a implementaciones de integración continua. El día de hoy, veremos cómo puedes agregar un scaffolding de pruebas unitarias con JEST en tus proyectos o librerías JavaScript tal y como se hace en un etorno profesional.

Requerimientos

- Tener configurado tu proyecto con npm. Es decir, que tengas un archivo package.json y puedas instalar paquetes mediante npm.

Si aún no tienes tu proyecto configurado con npm te invito a tomar lo necesario de este tutorial Crear librería en JavaScript instalable con NPM.

Configuración de la carpeta de tests

El primer paso consiste en crear una carpeta en donde se alojarán todos tus tests, por defecto esta carpeta suele llamarse tests.

mkdir tests

Instalación de JEST

Lo siguiente que debes hacer es instalar la última versión de jest. También es recomendable instalar al menos el loader de babel para jest para interpretar código como módulos ES y otros.

npm install --save-dev jest babel-jest @babel/preset-env

Crear la configuración de pruebas del proyecto

Ahora debes crear un archivo llamado jest.config.js que tenga la configuración de jest.

module.exports = {
  verbose: true,
  collectCoverage: true,
  coverageDirectory: './coverage/js',
};

También debes crear otro archivo para la configuración de babel.

module.exports = {
  presets: [['@babel/preset-env', {targets: {node: 'current'}}]],
};

Y finalmente te recomiendo crear el siguiente alias para las pruebas.

"scripts": {
  "test": "jest",
  ...
}

Creación de tu primera prueba unitaria

Hecho esto ya puedes crear tu primera prueba unitaria. Solo para efectos de tests se ha creado una aserción obvia. La idea es que como ya tienes autocargado tu proyecto, puedas testear tus componentes de software. Vamos entonces a crear el archivo Example.test.js en la carpeta tests.

test('Example test', () => {
  const myBool = true;
  expect(true).toBe(true);
});

Ejecución de las pruebas

Para ejecutar las pruebas en la clase creada anteriormente basta ejecutar el siguiente comando.

npm run test

Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.