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.