Go · Intermediário · Inglês · Técnico
httptest
Pacote net/http/httptest que testa handlers HTTP sem abrir porta de verdade, com NewRecorder para capturar a resposta e NewServer para subir um servidor local.
Onde usar
Permite testar uma API rapidamente, chamando o handler direto com uma requisição montada na hora. Também serve para simular serviços externos em testes de cliente.
Em código
req := httptest.NewRequest("GET", "/", nil)
rec := httptest.NewRecorder()
handler.ServeHTTP(rec, req)
if rec.Code != http.StatusOK {
t.Fatalf("status %d", rec.Code)
}Exemplos
Test the handler with httptest.NewRecorder.
Teste o handler com httptest.NewRecorder.
We fake the payment API with httptest.NewServer.
Simulamos a API de pagamento com httptest.NewServer.
Cuidado
O recorder não passa pelo roteador ou middleware que você não incluiu; chame o handler completo se quiser testar a pilha inteira.