Skip to main content
Version: 26.x

Iniciando

Instale Jest usando yarn:

yarn add --dev jest

Ou npm:

npm install --save-dev jest

Nota: A documentação do Jest usa comandos do yarn, mas com o npm também funcionará. Você pode comparar comandos yarn e npm aqui.

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 esta 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 via yarn:

yarn add --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'}}]],
};

A configuração ideal para Babel dependerá do seu projeto. Veja Docs do Babel para mais detalhes.

**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 {
// ...
};
};

Nota: babel-jest é instalado automaticamente quando instalar Jest e irá automaticamente transformar arquivos se uma configuração de babel existe 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: {},
};
**Babel 6 support**

Jest 24 retirou o suporte para Babel 6. Recomendamos fortemente que você atualize para o Babel 7, que é ativamente mantido. No entanto, se você não pode atualizar para Babel 7, continue usando Jest 23 ou atualize para Jest 24 com babel-jest bloqueado na versão 23, como no exemplo abaixo:

"dependencies": {
"babel-core": "^6.26.3",
"babel-jest": "^23.6.0",
"babel-preset-env": "^1.7.0",
"jest": "^24.0.0"
}

Nós geralmente recomendamos o uso da mesma versão de cada pacote Jest, porém esta solução permitirá que você continue usando a versão mais recente do Jest com o Babel 6 por hora.

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

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 via yarn:

yarn add --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).

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.

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.

yarn add --dev @types/jest