Empezando
Instala Jest usando yarn
:
O npm
:
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
:
Luego, crea un archivo llamado suma.test.js
. Este contendrá nuestra prueba actual:
Agrega la siguiente sección a tu package.json
:
Para terminar, ejecuta yarn test
o npm run test
y Jest imprimirá este mensaje:
¡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 comandosPuedes 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:
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ásicoBasado 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:
#
Usando BabelPara usar Babel, instala las dependencias requeridas con yarn
:
Configura Babel para tu versión actual de Node creando un fichero babel.config.js
en la raíz de tu proyecto:
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.
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
:
**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:
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 webpackJest 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 ParcelJest 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 TypeScriptJest 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
:
Luego agrega @babel/preset-typescript
a la lista de presets en tu babel.config.js
.
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 usando26.4.0
dejest
, entonces usar26.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.