Getting Started
Instale Jest usando npm
:
npm install --save-dev jest
Ou através do yarn
:
yarn add --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" } }
Finalmente, execute npm test
e 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 está disponível globalmente em seu PATH
, ou seja, npm install -g jest
) com uma variedade de opções ú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 #
Usando Babel #
Para usar o Babel, instale os pacotes babel-jest
e regenerator-runtime
:
npm install --save-dev babel-jest regenerator-runtime
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
na pasta raiz do seu projeto. Por exemplo, se você estiver usando ES6 e React.js com os presets babel-preset-es2015
e babel-preset-react
:
{ "presets": ["es2015", "react"] }
Você está agora configurado para usar todos os recursos da ES6 e a sintaxe específica do React.
Nota: Se você estiver usando uma configuração de Babel mais complicada, usando a opção
env
do Babel, tenha em mente que Jest automaticamente irá definirNODE_ENV
comotest
. Ele não usará a seção dedevelopment
como Babel por padrão quando nenhumaNODE_ENV
é definida.Note: If you've turned off transpilation of ES2015 modules with the option
{ "modules": false }
, you have to make sure to turn this on in your test enviornment.
{ "presets": [["es2015", { "modules": false }], "react"], "env": { "test": { "presets": [["es2015"], "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 detransform
:
// 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.
Usando TypeScript #
Para usar TypeScript em seus testes, instale o pacote ts-jest
e os tipos para Jest.
npm install --save-dev ts-jest @types/jest
então modifique seu package.json
para que a seção jest
pareça algo como:
{ "jest": { "transform": { "^.+\\.tsx?$": "<rootDir>/node_modules/ts-jest/preprocessor.js" }, "testRegex": "(/__tests__/.*|\\.(test|spec))\\.(tsx?|jsx?)$", "moduleFileExtensions": [ "ts", "tsx", "js", "json", "jsx" ] } }