Как проверял работу запросов

«Как проверял работу запросов» — вопрос из категории Тестирование, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Использовал 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")

Для сложных сценариев - мокировал зависимости через интерфейсы. Проверял:

  • Коды ответов
  • Заголовки
  • Тела запросов/ответов
  • Время выполнения
  • Обработку ошибок