Skip to main content
Version: 25.x

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

Finalmente, ejecuta yarn test o npm test y Jest imprimirá en la pantalla 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

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'}}]],
};

The ideal configuration for Babel will depend on your project. See Babel's docs for more details.

**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 {
// ...
};
};
note

babel-jest is automatically installed when installing Jest and will automatically transform files if a babel configuration exists in your project. 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 does offer some unique challenges over other tools. 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

In order for Jest to transpile TypeScript with ts-jest, you may also need to create a configuration file.

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.

note

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