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. Consulte a documentação oficial da 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](https://babeljs. io/docs/en/babel-plugin-transform-typescript#caveats) 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