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.
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