Pular para o conteúdo
murad.guide

Aplicações Web

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.

Go TDD

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
}