Capítulo 29
Go: TDD primeiros passos
2 min de leitura 408 palavras 1 gravura
Neste capítulo você vai escrever um teste que falha e uma função Ola do Ateliê. O projeto-fio é o Ateliê Boa Viagem, ateliê digital fictício em Boa Viagem, Recife.
Antes desta etapa
Go instalado (versão estável).
Seu ponto de partida
Use o exemplo 29-go-tdd do pacote anexo e copie inicio/ para uma pasta de prática fora do original. A raiz do exemplo é a referência completa desta etapa.
Use servidor só em 127.0.0.1 quando o README do exemplo pedir HTTP local. Abrir ou testar não publica nada.
Como praticar
Leia → copie ou digite → mude uma coisa → preveja → salve → recarregue → confira. Restaure cada experiência antes da próxima. Faça as atividades antes de abrir as respostas comentadas.
Teste em Go
Arquivos _test.go. go test. A função Ola devolve saudação ao visitante do Ateliê.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
func TestOla(t *testing.T) {
obtido := Ola("Lia")
esperado := "Olá, Lia"
if obtido != esperado {
t.Errorf("obtido %q esperado %q", obtido, esperado)
}
}
Mude uma coisa e preveja
Mude o esperado e veja falhar; depois corrija a função.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
go test passa.
Se não acontecer
Pacote main ou saudacao conforme exemplo.

Implementação mínima
Faça o teste passar com o menor código. Depois melhore.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
func Ola(nome string) string {
return "Olá, " + nome
}
Mude uma coisa e preveja
Trate nome vazio com Olá, visitante.
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
Novo teste cobre o caso.
Se não acontecer
Adicione TestOlaVazio.
Por que TDD aqui
Go + testes curtos ensinam feedback rápido sem UI. Útil antes de HTTP.
Faça na sua cópia
Confira o trecho no contexto do exemplo antes de mudar.
teste → código → refatore
Mude uma coisa e preveja
Rode go test ./…
Anote o que espera observar antes de salvar e recarregar.
Recarregue e confira
Suíte verde.
Se não acontecer
Instale Go e configure PATH.
Atividades
Atividade 1
Como rodar testes?
Atividade 2
O que fazer com nome vazio?
Atividade 3
TDD começa pelo quê?
Respostas comentadas
Resposta da atividade 1
go test
Resposta da atividade 2
Saudação padrão ao visitante.
Resposta da atividade 3
Pelo teste que descreve o comportamento.
O arquivo completo
Referência do exemplo 29-go-tdd, reproduzida aqui para que você possa conferir sem sair da página.
ola.go
package saudacao
func Ola(nome string) string {
if nome == "" {
return "Olá, visitante"
}
return "Olá, " + nome
}