Empezando
Install Jest using your favorite package manager:
- npm
- Yarn
- pnpm
npm install --save-dev jest
yarn add --dev jest
pnpm add --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
- Yarn
- pnpm
npm install --save-dev babel-jest @babel/core @babel/preset-env
yarn add --dev babel-jest @babel/core @babel/preset-env
pnpm add --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:
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.
module.exports = api => {
const isTest = api.env('test');
// You can use isTest to determine what presets and plugins to use.
return {
// ...
};
};
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
:
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
- Yarn
- pnpm
npm install --save-dev @babel/preset-typescript
yarn add --dev @babel/preset-typescript
pnpm add --save-dev @babel/preset-typescript
Luego agrega @babel/preset-typescript
a la lista de presets en tu 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
- Yarn
- pnpm
npm install --save-dev ts-jest
yarn add --dev ts-jest
pnpm add --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.
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
- Yarn
- pnpm
npm install --save-dev @types/jest
yarn add --dev @types/jest
pnpm add --save-dev @types/jest