Iniciando
Instale Jest usando yarn
:
Ou npm
:
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
:
Em seguida, crie um arquivo chamado sum.test.js
. Este irá conter o nosso teste real:
Adicione a seguinte seção ao seu package.json
:
Por fim, execute yarn test
ou npm run test
e o Jest irá imprimir esta mensagem:
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 comandoVocê 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:
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ásicoCom 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:
#
Usando BabelPara usar Babel, instale as dependências necessárias via yarn
:
Configure o Babel para marcar a sua versão atual do Node criando um arquivo babel.config.js
na raiz do seu projeto:
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.
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 detransform
:
**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:
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 webpackJest 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 ParcelJest 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 TypeScriptO 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
:
Então adicione o @babel/preset-typescript
à lista de presets em seu babel.config.js
.
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 usando26.4.0
dojest
então usar26.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.