Getting Started
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;
Agora, crie um arquivo sum.test.js
. Este arquivo conterá o nosso teste:
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
If you'd like to learn more about running jest
through the command line, take a look at the Jest CLI Options page.
Configuração adicional
Gerando um arquivo de configuração básico
Based on your project, Jest will ask you a few questions and will create a basic configuration file with a short description for each option:
jest --init
Usando Babel
Para usar o Babel, instale os pacotes babel-jest
e regenerator-runtime
:
yarn add --dev babel-jest babel-core regenerator-runtime
Note: If you are using Babel version 7 then you need to install
babel-jest
,babel-core@^7.0.0-bridge.0
and@babel/core
with the following command:
yarn add --dev babel-jest babel-core@^7.0.0-bridge.0 @babel/core regenerator-runtime
You will need to use `babel.config.js` in order to transpile `node_modules`. See https://babeljs.io/docs/en/next/config-files for more information.
You can also see the example in the Jest repository: https://github.com/facebook/jest/tree/54f4d4ebd3d1a11d65962169f493ce41efdd784f/examples/babel-7
*Nota: Instalar explicitamente `regenerator-runtime` não é necessário se você usa o `npm` 3 ou 4 ou Yarn*
Não se esqueça de adicionar um arquivo [ `.babelrc`](https://babeljs.io/docs/usage/babelrc/) na pasta raiz do seu projeto. For example, if you are using ES6 and [React.js](https://facebook.github.io/react/) with the [`babel-preset-env`](https://babeljs.io/docs/plugins/preset-env/) and [`babel-preset-react`](https://babeljs.io/docs/plugins/preset-react/) presets:
```json
{
"presets": ["env", "react"]
}
Você está agora configurado para usar todos os recursos da ES6 e a sintaxe específica do React.
Note: If you are using a more complicated Babel configuration, using Babel's
env
option, keep in mind that Jest will automatically defineNODE_ENV
astest
. Ele não usará a seção dedevelopment
como Babel por padrão quando nenhumaNODE_ENV
é definida.Nota: Se você desativou a transpilação dos módulos do ES6 com a opção `{"modules": false}</ code>, certifique-se de ativá-lo em seu ambiente de teste.
{
"presets": [["env", {"modules": false}], "react"],
"env": {
"test": {
"presets": [["env"], "react"]
}
}
}
`
>
> > 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`:
>
> ```json
// package.json
{
"jest": {
"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.
Using parcel
Jest can be used in projects that use parcel-bundler to manage assets, styles, and compilation similar to webpack. Parcel requires zero configuration. Refer to the official docs to get started.
Usando TypeScript
Para usar TypeScript em seus testes você pode usar o ts-jest.
You may also want to install the @types/jest
module for the version of Jest you're using. This will help provide full typing when writing your tests with TypeScript.
For
@types/*
modules it's recommended to try to match the version of the associated module. For example, if you are using26.4.0
ofjest
then using26.4.x
of@types/jest
is ideal. In general, try to match the major (26
) and minor (4
) version as closely as possible.
yarn add --dev @types/jest