Skip to main content
Version: 28.1

Empezando

Install Jest using your favorite package manager:

npm install --save-dev jest

Empecemos escribiendo una prueba para una función hipotética que suma dos números. Primero, crea un archivo suma.js:

function suma(a, b) {
return a + b;
}
module.exports = suma;

Luego, crea un archivo llamado suma.test.js. Este contendrá nuestra prueba actual:

const suma = require('./suma');

test('sumar 1 + 2 es igual a 3', () => {
expect(suma(1, 2)).toBe(3);
});

Agrega la siguiente sección a tu package.json:

{
"scripts": {
"test": "jest"
}
}

Finally, run yarn test or npm test and Jest will print this message:

PASS  ./suma.test.js
✓ sumar 1 + 2 es igual a 3 (5ms)

¡Acabas de escribir tu primera prueba usando Jest!

Esta prueba usa expect y toBe para probar que dos valores son exactamente idénticos. Para aprender sobre otras cosas que Jest puede probar, mira Usando Matchers.

Ejecutando desde la línea de comandos

Puedes ejecutar Jest directamente desde la CLI (si está disponible globalmente en tu PATH, p.e. con yarn global add jest o npm install jest --global) con varias opciones útiles.

Así es como puedes correr Jest en archivos que coinciden my-test, usando config.json como archivo de configuración y mostrar una notificación nativa del SO después de ejecutarlo:

jest my-test --notify --config=config.json

Si quieres aprender más sobre correr jest a través de la línea de comandos, hecha una mirada a la página de Opciones de Jest CLI.

Configuración Adicional

Genera un fichero de configuración básico

Basado en tu proyecto, Jest te hará algunas preguntas y creará un archivo de configuración básica con una corta descripción por cada opción:

jest --init

Usando Babel

To use Babel, install required dependencies:

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

Configura Babel para tu versión actual de Node creando un fichero babel.config.js en la raíz de tu proyecto:

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

La configuración ideal de Babel dependerá de tu proyecto. Consulta la documentación de Babel para tener más detalles.

**Haz que tu configuración de Babel sepa que usas Jest**

Jest will set process.env.NODE_ENV to 'test' if it's not set to something else. You can use that in your configuration to conditionally setup only the compilation needed for Jest, e.g.

babel.config.js
module.exports = api => {
const isTest = api.env('test');
// You can use isTest to determine what presets and plugins to use.

return {
// ...
};
};

Nota: babel-jest se instala automáticamente al instalar Jest y transforma los archivos si una configuración de babel existe en tu proyecto. Para evitar este comportamiento, puede restablecer explícitamente la opción de configuración de transform:

jest.config.js
module.exports = {
transform: {},
};

Usando webpack

Jest puede ser usado en proyectos que usan webpack para gestionar recursos, estilos y compilación. webpack ofrece desafíos únicos sobre otras herramientas. Consulta la documentación oficial para comenzar.

Usando Parcel

Jest puede ser usado en proyectos que usan parcel para gestionar recursos, estilos y compilación. webpack ofrece desafíos únicos por sobre otras herramientas. Refer to the official docs to get started.

Usando TypeScript

Via babel

Jest soporta TypeScript, a través de Babel. Primero, asegúrate de haber seguido las intrucciones en Usando Babel de arriba. Next, install the @babel/preset-typescript:

npm install --save-dev @babel/preset-typescript

Luego agrega @babel/preset-typescript a la lista de presets en tu babel.config.js.

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

Existen algunas cosas que debes tener en cuenta cuando uses TypeScript con Babel. Dado que el soporte de TypeScript en Babel se limita a la transpilación, Jest no comprobará los tipos de tus tests cuando éstos se ejecuten. Si lo deseas, puedes utilizar ts-jest o simplemente ejecutar el compilador de TypeScript por separado (como parte del proceso de compilación).

Via ts-jest

ts-jest is a TypeScript preprocessor with source map support for Jest that lets you use Jest to test projects written in TypeScript.

npm install --save-dev ts-jest

Type definitions

Es posible que también desees instalar el módulo @types/jest para la versión que estes usando. Esto ayudará a tener una mayor compatibilidad al escribir tus pruebas con TypeScript.

Para los módulos @types/* es recomendable intentar hacer coincidir la versión asociada al módulo. Por ejemplo, si estás usando 26.4.0 de jest, entonces usar 26.4.x de @types/jest es ideal. En general, trate de hacer coincidir la versión principal (26) y menor (4) lo más que puedas.

npm install --save-dev @types/jest