Getting Started
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í.
Let's get started by writing a test for a hypothetical function that adds two numbers. First, create a sum.js
file:
function suma(a, b) {
return a + b;
}
module.exports = suma;
Then, create a file named sum.test.js
. This will contain our actual test:
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
If you'd like to learn more about running jest
through the command line, take a look at the Jest CLI Options page.
Configuración Adicional
Genera un fichero de configuración básico
Based on your project, Jest will ask you a few questions and will create a basic configuration file with a short description for each option:
jest --init
Usando Babel
Para usar Babel, instala los paquetes babel-jest
y regenerator-runtime
:
yarn add --dev babel-jest babel-core regenerator-runtime
Note: If you are using Babel version 7 then you need to install
babel-jest
,babel-core@^7.0.0-bridge.0
and@babel/core
with the following command:
yarn add --dev babel-jest babel-core@^7.0.0-bridge.0 @babel/core regenerator-runtime
You will need to use `babel.config.js` in order to transpile `node_modules`. See https://babeljs.io/docs/en/next/config-files for more information.
You can also see the example in the Jest repository: https://github.com/facebook/jest/tree/54f4d4ebd3d1a11d65962169f493ce41efdd784f/examples/babel-7
*Nota: No es necesario instalar explicitamente `regenerator-runtime` si usas `npm` 3 o 4 o Yarn*
No olvides agregar un archivo [`.babelrc`](https://babeljs.io/docs/usage/babelrc/) en el directorio raíz de tu proyecto. For example, if you are using ES6 and [React.js](https://facebook.github.io/react/) with the [`babel-preset-env`](https://babeljs.io/docs/plugins/preset-env/) and [`babel-preset-react`](https://babeljs.io/docs/plugins/preset-react/) presets:
```json
{
"presets": ["env", "react"]
}
Ahora estas preparado para usar todas las características de ES6 y la sintaxis específica de React.
Note: If you are using a more complicated Babel configuration, using Babel's
env
option, keep in mind that Jest will automatically defineNODE_ENV
astest
. No usará la seccióndevelopment
como Babel lo hace por defecto cuando la variableNODE_ENV
no está definida.Note: If you've turned off transpilation of ES6 modules with the option
{ "modules": false }
, you have to make sure to turn this on in your test environment.
{
"presets": [["env", {"modules": false}], "react"],
"env": {
"test": {
"presets": [["env"], "react"]
}
}
}
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 detransform
:
// package.json
{
"jest": {
"transform": {}
}
}
Usando webpack
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 Parcel
Jest se puede utilizar en proyectos que utilicen parcel-bundler para administrar diferentes archivos, tales como "Assets, Styles o archivos de compilación" de manera similar a Webpack Parcel requiere cero configuración. Consulta la documentación oficial para comenzar.
Usando TypeScript
To use TypeScript in your tests you can use ts-jest.
Es posible que también desee instalar el modulo @types/jest
para la versión que este usando. Esto lo ayudará a tener una mayor compatibilidad al escribir sus pruebas con TypeScript.
For
@types/*
modules it's recommended to try to match the version of the associated module. For example, if you are using26.4.0
ofjest
then using26.4.x
of@types/jest
is ideal. In general, try to match the major (26
) and minor (4
) version as closely as possible.
yarn add --dev @types/jest