Aula 13 - Testes em Go ✅
Garantindo a Qualidade e Estabilidade do seu Código
Agenda de Hoje 📅
- Por que testar é vital?
- O comando
go test - Testes Unitários Básicos
- Table-Driven Tests (Idiomático)
- Cobertura e Performance
- Mini-Projeto: TDD na Prática
1. O Suporte Nativo 🧪
- Go não precisa de frameworks externos (como Jest ou JUnit).
- Pacote
testinge comandogo testfazem tudo. - Sufixo obrigatório:
_test.go.
2. Testes de Tabela (Professional) 📊
- Teste múltiplos cenários com um único loop.
3. Cobertura de Testes 📈
- Quanto do seu código está realmente protegido?
- Gere relatórios HTML visuais para análise.
4. Mocking de API 🎭
- Teste Handlers sem subir o servidor.
- Pacote
net/http/httptest.
graph LR
Test[Test Code] -->|Fake Req| Handler[Handler]
Handler -->|Record| res[ResponseRecorder]
res -->|Verify| Test
5. Benchmarks: Medindo Velocidade ⚡
- Teste o tempo de execução e alocação de memória.
6. Mini-Projeto: TDD na Prática 🚀
- Inverter uma string.
- Passo 1: Criar o teste (FAIL).
- Passo 2: Codar a função.
- Passo 3: Testar novamente (PASS).
Resumo da Aula ✅
- Testes em Go são simples e rápidos.
- Table-driven tests evitam duplicação de lógica.
- Cobertura alta = Dormir tranquilo.
Próxima Aula: Arquitetura Limpa 🏗️
- Injeção de Dependência.
- Organizando grandes projetos.
Dúvidas? 🤔
"Testes não evitam bugs, eles evitam que os mesmos bugs voltem."