
Projetos
Testes
Projeto ToDoList com Jest
Neste artigo, vamos criar e testar uma ToDoList simples utilizando o framework Jest. O foco será construir funções robustas com feedback claro e realizar testes automatizados para garantir que tudo funcione como esperado.
• 16 de mai. de 2025
• 4 min de leitura

📁 Estrutura de Arquivos
project-root/ ├── src/ │ └── toDoList.js ├── tests/ │ └── toDoList.test.js └── package.json
Código da ToDoList
src/toDoList.js
const list = []; // Adiciona um item na lista, evitando duplicatas function toDoList(item) { if (!item || typeof item !== 'string') return "Item inválido"; if (!list.includes(item)) { list.push(item); return "Item adicionado"; } return "Este item já foi adicionado"; } // Remove um item da lista function removeItem(item) { const index = list.indexOf(item); if (index > -1) { list.splice(index, 1); return "Item removido"; } return "Item não encontrado"; } // Retorna todos os itens da lista function getAllItems() { return [...list]; } // Reseta a lista para fins de teste function resetList() { list.length = 0; } module.exports = { toDoList, removeItem, getAllItems, resetList };
Casos de Teste
tests/toDoList.test.js
const functions = require("../src/toDoList"); beforeEach(() => { functions.resetList(); // limpa a lista antes de cada teste }); test("add new item", () => { expect(functions.toDoList("Comprar pão")).toBe("Item adicionado"); }); test("do not add duplicate item", () => { functions.toDoList("Estudar Jest"); expect(functions.toDoList("Estudar Jest")).toBe("Este item já foi adicionado"); }); test("reject invalid input", () => { expect(functions.toDoList("")).toBe("Item inválido"); expect(functions.toDoList(null)).toBe("Item inválido"); expect(functions.toDoList(123)).toBe("Item inválido"); }); test("remove existing item", () => { functions.toDoList("Ir ao mercado"); expect(functions.removeItem("Ir ao mercado")).toBe("Item removido"); }); test("fail to remove non-existent item", () => { expect(functions.removeItem("Lavar o carro")).toBe("Item não encontrado"); }); test("get all items", () => { functions.toDoList("Ler livro"); functions.toDoList("Fazer exercícios"); expect(functions.getAllItems()).toEqual(["Ler livro", "Fazer exercícios"]); });
Saída esperada:
PASS tests/toDoList.test.js √ add new item (3 ms) √ do not add duplicate item (1 ms) √ reject invalid input (1 ms) √ remove existing item √ fail to remove non-existent item (1 ms) √ get all items (1 ms) Test Suites: 1 passed, 1 total Tests: 6 passed, 6 total Snapshots: 0 total Time: 1.168 s
Conclusão
Criamos uma aplicação simples de lista de tarefas com feedback direto e testável. Com Jest, conseguimos validar cada funcionalidade individualmente e garantir a confiabilidade do código.
Este tipo de exemplo é ideal para iniciantes que querem entender na prática como testar suas funções JavaScript.
Para rodar os testes
No terminal, execute:
npm install npm test
Tags
Projetos
Testes
Artigos Relacionados


