Skip to main content
Versão: 28.x

Iniciando

Instale Jest usando seu gerenciador de pacotes favorito:

npm install --save-dev jest

Vamos começar por escrever um teste para uma função hipotética que soma dois números. Primeiro, crie um arquivo sum.js:

function sum(a, b) {
return a + b;
}
module.exports = sum;

Em seguida, crie um arquivo chamado sum.test.js. Este irá conter o nosso teste real:

const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});

Adicione a seguinte seção ao seu package.json:

{
"scripts": {
"test": "jest"
}
}

Por fim, execute yarn test ou npm run test e o Jest irá imprimir a seguinte mensagem:

PASS  ./sum.test.js
✓ adds 1 + 2 to equal 3 (5ms)

Você escreveu com sucesso seu primeiro teste usando Jest!

Este teste usou expect e toBe para testar que dois valores eram exatamente idênticos. Para saber mais sobre as outras coisas que Jest pode testar, consulte Usando Matchers.

Executando a partir da linha de comando​

Você pode executar Jest diretamente da CLI (se ele estiver disponível globalmente em seu PATH, por exemplo: yarn global add jest ou npm install -g jest) com uma variedade de comandos úteis.

Aqui vemos como executar Jest em arquivos que correspondam ao my-test, usando config.json como um arquivo de configuração e exibir uma notificação nativa no Sistema Operacional após a execução:

jest my-test --notify --config=config.json

Se você gostaria de aprender mais sobre como executar jest através da linha de comando, dê uma olhada na página Opções de CLI Jest.

Configuração adicional​

Gerando um arquivo de configuração básico​

Com base no seu projeto, o Jest fará algumas perguntas e irá criar um arquivo básico de configuração com uma breve descrição para cada opção:

jest --init

Usando Babel​

Para usar Babel, instale as dependências necessárias:

npm install --save-dev babel-jest @babel/core @babel/preset-env

Configure o Babel para marcar a sua versão atual do Node criando um arquivo babel.config.js na raiz do seu projeto:

babel.config.js
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.

**Making your Babel config jest-aware**

Jest definirá process.env.NODE_ENV para 'test' se não estiver definido para outra coisa. Você pode usar isso em sua configuração para configurar condicionalmente apenas a compilação necessária para Jest, por exemplo.

babel.config.js
module.exports = api => {
const isTest = api.env('test');
// You can use isTest to determine what presets and plugins to use.

return {
// ...
};
};
note

babel-jest é instalado automaticamente quando instalar Jest e irá automaticamente transformar arquivos caso uma configuração de babel existir em seu projeto. Para evitar esse comportamento, você pode redefinir explicitamente a opção de configuração de transform:

jest.config.js
module.exports = {
transform: {},
};

Usando webpack​

Jest pode ser usado em projetos que usam webpack para gerenciar assets, estilos e compilação. webpack oferece alguns desafios únicos em relação à outras ferramentas. Consulte o guia do webpack para começar.

Usando Parcel​

Jest pode ser usado em projetos que usam parcel-bundler para gerenciar ativos, estilos, e compilação semelhante ao webpack. Parcel requer configuração zero. Veja a documentação oficial para começar.

Usando TypeScript​

Via babel​

O Jest suporta TypeScript, via Babel. Primeiro certifique-se que você seguir as instruções em usando o Babel acima. Em seguida, instale o @babel/preset-typescript:

npm install --save-dev @babel/preset-typescript

Então adicione o @babel/preset-typescript à lista de presets em seu babel.config.js.

babel.config.js
module.exports = {
presets: [
['@babel/preset-env', {targets: {node: 'current'}}],
'@babel/preset-typescript',
],
};

No entanto, há algumas ressalvas para usar TypeScript com Babel. Como o suporte para TypeScript em Babel é puramente transpilação, Jest não irá checar seus testes enquanto eles são executados. Se você quiser isso, você pode usar ts-jest em vez disso. ou apenas execute o compilador TypeScript tsc separadamente (ou como parte de seu processo de compilação).

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 install --save-dev ts-jest

Para que Jest interprete TypeScript com ts-jest, talvez você precise criar um arquivo de configuração.

Definições de tipo​

Você também pode querer instalar o módulo @types/jest para a versão do Jest que você está usando. Isso ajudará a fornecer a digitação completa ao escrever seus testes com TypeScript.

note

Para @types/* módulos, é recomendado tentar corresponder à versão do módulo associado. Por exemplo, se você estiver usando 26.4.0 do jest então usar 26.4.x de @types/jest é ideal. Em geral, tente corresponder à versão principal (26) e com uma versão menor (4) o mais próximo possível.

npm install --save-dev @types/jest