Sobes.tech
Junior — Middle

Czy masz doświadczenie w tworzeniu lub wykonywaniu testów end-to-end w celu sprawdzenia pełnego scenariusza użytkownika?

sobes.tech AI

Odpowiedź od AI

Tak, w Golang często używa się frameworków do testów end-to-end, które pozwalają na uruchamianie pełnych scenariuszy użytkownika, w tym interakcji z API, bazą danych i usługami zewnętrznymi. Na przykład można napisać test, który wysyła żądania HTTP do Twojej aplikacji i sprawdza odpowiedzi, symulując zachowanie użytkownika.

Przykład prostego testu end-to-end z użyciem standardowego pakietu net/http i testing:

package main

import (
    "net/http"
    "net/http/httptest"
    "testing"
)

func TestEndToEnd(t *testing.T) {
    // Tworzymy testowy serwer HTTP z Twoim obsługującym funkcją
    handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        w.WriteHeader(http.StatusOK)
        w.Write([]byte("Witaj, użytkowniku!"))
    })
    server := httptest.NewServer(handler)
    defer server.Close()

    // Wysyłamy żądanie HTTP symulując użytkownika
    resp, err := http.Get(server.URL)
    if err != nil {
        t.Fatalf("Nie udało się wysłać żądania: %v", err)
    }
    defer resp.Body.Close()

    if resp.StatusCode != http.StatusOK {
        t.Errorf("Oczekiwany status 200 OK, otrzymano %d", resp.StatusCode)
    }
}

W rzeczywistych projektach można korzystać z bardziej zaawansowanych narzędzi, takich jak godog do BDD lub chromedp do testowania UI w przeglądarce.