Getting Started
Instala Jest usando npm
:
npm install --save-dev jest
O a través de yarn
:
yarn add --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 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 correr Jest directamente desde el CLI (Si está globalmente disponible en tu PATH
, por ejemplo con npm install -g jest
) con una variedad de 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, echa una mirada a la página de Opciones de Jest CLI.
Configuración Adicional #
Usando Babel #
Para usar Babel, instala los paquetes babel-jest
y regenerator-runtime
:
npm install --save-dev babel-jest regenerator-runtime
Nota: No es necesario instalar explicitamente regenerator-runtime
si usas npm
3 o 4 o Yarn
No olvides agregar un archivo .babelrc
en el directorio raíz de tu proyecto. Por ejemplo, si estas usando ES6 y React.js con los presets de babel-preset-es2015
y babel-preset-react
:
{ "presets": ["es2015", "react"] }
Ahora estas preparado para usar todas las características de ES6 y la sintaxis específica de React.
Nota: Si estas usando una configuración de Babel más complicada, usando la opción
env
de Babel, ten en cuenta que Jest definirá automáticamente la variable de entornoNODE_ENV
comotest
. 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 ES2015 modules with the option
{ "modules": false }
, you have to make sure to turn this on in your test enviornment.
{ "presets": [["es2015", { "modules": false }], "react"], "env": { "test": { "presets": [["es2015"], "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 manejar recursos, estilos y compilación. webpack ofrece desafíos únicos por sobre otras herramientas. Véase la guía de webpack para empezar.
Usando TypeScript #
Para usar TypeScript en tus pruebas, instala el paquete ts-jest
y los tipos para Jest.
npm install --save-dev ts-jest @types/jest
luego modifica tu package.json
de modo que la sección de jest
se vea similar a esto:
{ "jest": { "transform": { "^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js" }, "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$", "moduleFileExtensions": [ "ts", "tsx", "js", "json", "jsx" ] } }