Skip to main content
Version: 25.x

Empezando

Instala Jest usando yarn:

yarn add --dev jest

O npm:

npm install --save-dev jest

Nota: la documentación de Jest usa comandos de yarn, pero también puede usarse npm. Puedes comparar los comandos de yarn y npm en la documentación de yarn, aquí.

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"
}
}

Para terminar, ejecuta yarn test o npm run test y Jest imprimirá este mensaje:

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#

Para usar Babel, instala las dependencias requeridas con yarn:

yarn add --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');
// Puedes usar isTest para determinar qué presets y qué plugins se usarán.
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: {},
};
**Babel 6 support**

Jest 24 dropped support for Babel 6. We highly recommend you to upgrade to Babel 7, which is actively maintained. However, if you cannot upgrade to Babel 7, either keep using Jest 23 or upgrade to Jest 24 with babel-jest locked at version 23, like in the example below:

"dependencies": {
"babel-core": "^6.26.3",
"babel-jest": "^23.6.0",
"babel-preset-env": "^1.7.0",
"jest": "^24.0.0"
}

While we generally recommend using the same version of every Jest package, this workaround will allow you to continue using the latest version of Jest with Babel 6 for now.

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 webpack para gestionar recursos, estilos y compilación. webpack ofrece desafíos únicos por sobre otras herramientas. Véase la guía de webpack para empezar.

Usando TypeScript#

Jest soporta TypeScript, a través de Babel. Primero, asegúrate de haber seguido las intrucciones en Usando Babel de arriba. A continuación, instala @babel/preset-typescript a través de yarn:

yarn add --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).

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.

yarn add --dev @types/jest