"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Teste seu aplicativo JavaScript com Jest

Teste seu aplicativo JavaScript com Jest

Publicado em 01/09/2024
Navegar:699

Test Your JavaScript App With Jest

O teste é uma parte crucial do desenvolvimento de software que garante que seu aplicativo se comporte conforme o esperado. Uma das estruturas de teste mais populares no ecossistema JavaScript é o Jest. Desenvolvido pelo Facebook, o Jest é conhecido por sua simplicidade e facilidade de uso, o que o torna uma excelente escolha tanto para iniciantes quanto para desenvolvedores experientes.

Primeiros passos com Jest

Antes de mergulharmos nos exemplos, vamos configurar o Jest em seu projeto. Se ainda não o fez, você pode instalá-lo usando npm:

npm install --save-dev jest

Em seguida, adicione um script de teste ao seu package.json:

"scripts": {
  "test": "jest"
}

Agora você está pronto para escrever alguns testes!
Vamos criar uma função simples para testar. Crie um arquivo chamado math.js:

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

Agora, vamos escrever um teste para esta função. Crie um arquivo chamado math.test.js:

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

test('adds 1   2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

Neste teste, usamos a função de teste para definir um caso de teste. A função expect é usada para afirmar que o resultado de add(1, 2) é igual a 3.

Executando os testes

Você pode executar seus testes executando o seguinte comando em seu terminal:

npm test

Você deverá ver uma saída indicando que seu teste foi aprovado.

Testando código assíncrono

Jest também suporta testes de código assíncrono. Vamos modificar nosso arquivo math.js para incluir uma função assíncrona:

// math.js
function fetchData() {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve('peanut butter');
    }, 1000);
  });
}

module.exports = { add, fetchData };

Agora, vamos escrever um teste para fetchData:

// math.test.js
const { add, fetchData } = require('./math');

test('adds 1   2 to equal 3', () => {
  expect(add(1, 2)).toBe(3);
});

test('fetches data', async () => {
  const data = await fetchData();
  expect(data).toBe('peanut butter');
});

Neste teste, marcamos a função de teste como assíncrona e usamos await para aguardar a resolução da promessa.

Funções de zombaria

Jest fornece recursos poderosos de simulação. Digamos que você tenha uma função que faz uma chamada de API. Você pode simular esta função para controlar seu comportamento durante os testes.
Aqui está um exemplo:

// api.js
const axios = require('axios');

async function getUser() {
  const response = await axios.get('https://api.example.com/user');
  return response.data;
}

module.exports = getUser;

Você pode simular axios em seu teste:

// api.test.js
const axios = require('axios');
const getUser = require('./api');

jest.mock('axios');

test('fetches user data', async () => {
  const user = { name: 'John Doe' };
  axios.get.mockResolvedValue({ data: user });

  const result = await getUser();
  expect(result).toEqual(user);
});

Neste teste, simulamos o método axios.get para retornar uma resposta predefinida, permitindo-nos testar getUser sem fazer uma chamada de API real.

Jest é uma estrutura de teste poderosa que facilita escrever e executar testes para seus aplicativos JavaScript. Com sua sintaxe simples, suporte para código assíncrono e recursos integrados de simulação, Jest pode ajudá-lo a garantir que seu código seja confiável e de fácil manutenção. Comece a integrar o Jest em seus projetos hoje mesmo e aproveite os benefícios dos testes automatizados.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/jospin6/test-your-javascript-app-with-jest-314c?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3