Aula 11 - Desenvolvimento Orientado por Testes (TDD) 🔴🟢🔵
🔄 O Ciclo do TDD
O TDD (Test Driven Development) não é apenas uma técnica de teste, mas uma metodologia de design de software. O mantra é: "Nunca escreva uma linha de código sem antes ter um teste que falhe."
A metodologia baseia-se em um ciclo curto e repetitivo:
- 🔴 RED: Escreva um teste pequeno que falhe (pois a funcionalidade ainda não existe).
- 🟢 GREEN: Escreva a quantidade mínima de código para fazer o teste passar.
- 🔵 REFACTOR: Melhore o código escrito, removendo duplicidade e aplicando padrões, garantindo que o teste continue passando.
stateDiagram-v2
[*] --> Red
Red --> Green : Escrever código mínimo
Green --> Refactor : Melhorar estrutura
Refactor --> Red : Próximo requisito
Refactor --> [*] : Funcionalidade Completa 🧠 Por que usar TDD?
- Foco no Requisito: Você só implementa o que é estritamente necessário.
- Documentação Viva: Os testes servem como exemplos reais de uso do código.
- Redução de Bugs: Problemas de lógica são encontrados instantaneamente.
- Confiança na Refatoração: Você pode mudar o código sabendo que os testes te protegem.
💻 TDD no Terminal
📝 Exercício de Fixação
- No ciclo do TDD, por que é proibido escrever mais código do que o necessário para o teste passar na fase GREEN?
- Qual a diferença entre um teste escrito antes do código (TDD) e um teste escrito depois do código pronto?
🚀 Mini-Projeto
Objetivo: Aplicar o ciclo Red-Green-Refactor mentalmente. - Requisito: Uma função que recebe um nome e retorna "Olá, [Nome]". - Passo 1 (Red): Como seria a chamada deste teste? Qual seria o erro esperado? - Passo 2 (Green): Qual o código mínimo para retornar a string correta? - Passo 3 (Refactor): O que você poderia melhorar se tivesse que tratar nomes vazios?
🔗 Materiais da Aula
-
Slides --- Material visual com diagramas e conceitos-chave. Slide 11
-
Quiz --- Teste seu conhecimento com 10 questões interativas. Quiz 11
-
Exercícios --- 5 exercícios progressivos (básico → desafio). Exercício 11
-
Projeto --- Aplicação prática dos conceitos da aula. Projeto 11