Introdução ao Jest

Allan da Silva

Objetivo:

Aprender a configurar o Jest e escrever testes unitários em um projeto Usando javascript, explorando diferentes cenários de teste.

Allan da Silva

O que é Jest?

  • Jest é um framework de testes JavaScript desenvolvido pelo Facebook.
  • Focado em simplicidade e suporte para projetos React, mas não limitado a eles.
  • Inclui funcionalidades como mocks, testes assíncronos e cobertura de código.
Allan da Silva

Vantagens do Jest

  • Fácil de configurar: Funciona out-of-the-box para projetos React.
  • Rápido: Executa testes em paralelo e apenas para os arquivos alterados.
  • Cobertura de código integrada: Relatórios de cobertura de código embutidos.
  • Snapshots: Testes de instantâneos para verificar a saída de componentes.
Allan da Silva

Setup Inicial

Passo 1: Instalando dependências

Abra o terminal e execute o seguinte comando na raiz do seu projeto:

npm install --save-dev jest 
Allan da Silva

Passo 2: Configurando o Jest

Crie um arquivo de configuração jest.config.js na raiz do projeto:

module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
  moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
  transform: {
    '^.+\\.(ts|tsx)$': 'ts-jest',
  },
  testMatch: ['**/**/*.test.(ts|tsx|js)'],
};
Allan da Silva

Passo 3: Adicionando script ao package.json:

{
  "scripts": {
    "test": "jest",
    "test:watch": "jest --watch",
    "test:coverage": "jest --coverage"
  }
}

Allan da Silva

Passo 4: Criando nossas funções

  • crie o arquivo calc.js
function sum(a, b) {
  return a + b;
}
function subtract(a, b) {
  return a - b;
}
function multiply(a, b) {
  return a * b;
}
function divide(a, b) {
  return b !== 0 ? a / b : null;
}
function isEven(num) {
  return num % 2 === 0;
}
function isOdd(num) {
  return num % 2 !== 0;
}
module.exports = { sum, subtract, multiply, divide, isEven, isOdd }
Allan da Silva

Passo 5: Criando nosso arquivo de testes

  • crie o arquivo calc.test.js
const { sum, subtract, multiply, divide, isEven, isOdd } = require('../calc');

describe('testando nossa calculadora', () => {
 test('testando a soma', () => {
   // seu teste aqui
 })
})
Allan da Silva

Bora praticar sem chat GPT!

Allan da Silva