Skip to main content
Version: 27.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 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​

Using 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).

Using TypeScript 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

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.

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

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