Aula 16
Testes e TDD
🎯 Objetivos
- Qualidade de Software
- Pirâmide de Testes
- TDD (Test Driven Development)
- Pytest
🐞 Por que testar?
- Confiança: Posso mudar o código sem medo.
- Documentação: O teste mostra como usar o código.
- Economia: Achar bug na produção custa caro (R$). Achar no desenvolvimento é barato.
🔄 O Ciclo TDD
Não é só testar. É desenhar o software.
- 🔴 Red (Falha): Escreva o teste para uma funcionalidade que não existe.
- 🟢 Green (Sucesso): Faça o código mais simples para passar.
- 🔵 Refactor (Limpeza): Melhore o código, remova duplicação.
🧪 O pytest
Ferramenta padrão da comunidade Python.
Instalação:
pip install pytest
Como escrever:
Como rodar:
pytest (Ele acha sozinho os arquivos test_*.py)
🏗️ Estrutura AAA
- Arrange: Prepara o cenário.
- Act: Executa a ação.
- Assert: Verifica o resultado.
def test_login():
# Arrange
usuario = Usuario("admin", "123")
# Act
logado = usuario.login("123")
# Assert
assert logado == True
📁 Organização do Projeto
Separe código de produção dos testes.
src/: Seu código Python.tests/: Seus arquivos de teste.
Isso é profissional e evita bagunça.
🏁 Resumo
- Testes automatizados salvam vidas.
- TDD ajuda a planejar o código.
- Use
pytest. - Mantenha testes simples e rápidos.
Projeto Final 🚀
Gerenciador de Tarefas Profissional com TDD.