Skip to main content
Version: 29.6

Configurando Jest

La filosofía de Jest es que funcione bien por defecto, pero a veces se necesita tener más control en la configuración.

Se recomienda definir la configuración en un archivo JavaScript dedicado, TypeScript o JSON. El archivo será descubierto automáticamente, si se llama jest.config.js|ts|mjs|cjs|json. Puede usar la bandera --config para pasar una ruta explícita al archivo.

note

Tenga en cuenta que el objeto de configuración resultante debe ser siempre serializable en JSON.

El archivo de configuración debería exportar un objeto:

/** @type {import('jest').Config} */
const config = {
verbose: true,
};

module.exports = config;

O una función devolviendo un objeto:

/** @devuelve {Promise<import('jest').Config>} */
module.exports = async () => {
return {
verbose: true,
};
};
tip

Para leer los archivos de configuración de TypeScript, Jest requiere ts-node. Asegúrese de que está instalado en tu proyecto.

La configuración también puede almacenarse en un archivo JSON como un objeto plano:

jest.config.json
{
"bail": 1,
"verbose": true
}

Alternativamente, la configuración de Jest puede definirse a través de la clave "jest" en el package.json de tu proyecto:

package.json
{
"name": "my-project",
"jest": {
"verbose": true
}
}

Opciones

info

Puede recuperar los valores predeterminados de Jest de jest-config para extenderlos si es necesario:

const {defaults} = require('jest-config');

/** @type {import('jest').Config} */
const config = {
moduleFileExtensions: [...defaults.moduleFileExtensions, 'mts', 'cts'],
};

module.exports = config;

Referencia

automock [boolean]

Default: false

This option tells Jest that all imported modules in your tests should be mocked automatically. All modules used in your tests will have a replacement implementation, keeping the API surface.

Ejemplo:

utils.js
export default {
authorize: () => 'token',
isAuthorized: secret => secret === 'wizard',
};
__tests__/automock.test.js
importar utilidades de '../utils';

test('si las utils se simularon automáticamente', () => {
// Los métodos públicos de `utils` ahora son funciones simuladas
expect(utils. uthorize.mock).toBeTruthy();
expect(utils.isAuthorized.mock). oBeTruthy();

// Puede proporcionarlos con su propia implementación
// o pasar el valor de retorno esperado
utilidades.authorize.mockReturnValue('mocked_token');
utils.isAuthorized.mockReturnValue(true);

expect(utils.authorize()).toBe('mocked_token');
expect(utils.isAuthorized('not_wizard')).toBeTruthy();
});
note

Node modules are automatically mocked when you have a manual mock in place (e.g.: __mocks__/lodash.js). More info here.

Node.js core modules, like fs, are not mocked by default. They can be mocked explicitly, like jest.mock('fs').

bail [number | boolean]