Projeto Final - Gerenciador de Tarefas (Task Manager) com TDD
🎯 Objetivo
Desenvolver o "núcleo" (backend) de um gerenciador de tarefas profissional usando TDD. Você não fará a interface (menu), apenas as classes e a lógica, garantidas por testes.
📋 Requisitos do Sistema
-
Classe
Tarefa:- Atributos:
titulo,descricao,concluida(bool, default False). - Método
concluir(): Marca como True. - Método
pendente(): Marca como False.
- Atributos:
-
Classe
GerenciadorTarefas:- Atributos:
tarefas(lista). - Método
adicionar(titulo, descricao): Cria e adiciona tarefa. Retorna a tarefa criada. - Método
listar(): Retorna lista de tarefas. - Método
listar_concluidas(): Retorna apenas as True. - Método
remover(indice): Remove tarefa. LançaIndexErrorse inválido.
- Atributos:
👣 Passo a Passo (Modo TDD)
Siga estritamente esta ordem. Não pule!
Ciclo 1: Criar Tarefa
- Red: Crie
test_tarefa.py. Teste se ao instanciarTarefa("Estudar", "Python"), os atributos estão certos econcluidaéFalse. - Green: Crie a classe
Tarefaemtarefas.py. - Refactor: Está limpo?
Ciclo 2: Concluir Tarefa
- Red: Adicione teste em
test_tarefa.pychamando.concluir()e verificando se virouTrue. - Green: Implemente o método
concluir.
Ciclo 3: Gerenciador (Adicionar)
- Red: Crie
test_gerenciador.py. Testeadicionar. Verifique se a listatarefasaumentou. - Green: Crie a classe
GerenciadorTarefase o método.
Ciclo 4: Remover (Com erro)
- Red: Teste
remover(0)com lista vazia. Deve lançar exceção. (Usepytest.raises). - Green: Implemente a validação no
remover.
🚀 Entrega
Seu projeto final deve ter:
- src/tarefas.py (O código)
- tests/test_tarefa.py (Testes da unidade Tarefa)
- tests/test_gerenciador.py (Testes da unidade Gerenciador)
Rode pytest e veja tudo verde. 🟢 Parabéns, você é um programador Python profissional!