Ответ
Использовал net/http/httptest для тестирования HTTP-запросов. Пример:
func TestHandler(t *testing.T) {
req := httptest.NewRequest("GET", "/test", nil)
w := httptest.NewRecorder()
handler(w, req)
if w.Code != http.StatusOK {
t.Errorf("Expected status 200, got %d", w.Code)
}
}
Для API-запросов применял Postman/curl + логирование. В коде использовал http.Client с таймаутами:
client := &http.Client{
Timeout: 10 * time.Second,
}
resp, err := client.Get("https://api.example.com")
Для сложных сценариев - мокировал зависимости через интерфейсы. Проверял:
- Коды ответов
- Заголовки
- Тела запросов/ответов
- Время выполнения
- Обработку ошибок