Aula 8

JavaScript Intermediário

Testes de Unidade

Conceitos e Importância

Conceitos:

Importância:

Ferramentas de Teste

Exemplo Prático: Teste de Unidade

Código a ser Testado

// math.js
function soma(a, b) {
    return a + b;
}
module.exports = soma;

Configuração

  1. Instale o Jest (ou outra ferramenta):
    npm install jest --save-dev
  2. Adicione um script no package.json:
    {
      "scripts": {
          "test": "jest"
      }
    }

Escrevendo o Teste

// math.test.js
const soma = require('./math');

test('Deve somar 2 e 3 e retornar 5', () => {
    expect(soma(2, 3)).toBe(5);
});

test('Deve retornar um número negativo ao somar -5 e 2', () => {
    expect(soma(-5, 2)).toBe(-3);
});

Executando o Teste

npm test

Saída esperada:


PASS  ./math.test.js
✓ Deve somar 2 e 3 e retornar 5 (Xms)
✓ Deve retornar um número negativo ao somar -5 e 2 (Xms)

Teste com Mocking e Spying

Mocks e spies ajudam a simular o comportamento de funções ou serviços externos.

Exemplo

Simulando uma função que faz uma chamada API:

// api.js
function fetchUser(id) {
    return fetch(`https://api.example.com/users/${id}`)
        .then((response) => response.json());
}
module.exports = fetchUser;

Teste com Mock:

const fetchUser = require('./api');

jest.mock('./api', () => ({
    fetchUser: jest.fn(() => Promise.resolve({ id: 1, name: "John Doe" }))
}));

test('Deve retornar o usuário correto', async () => {
    const user = await fetchUser(1);
    expect(user).toEqual({ id: 1, name: "John Doe" });
});

Boas Práticas