Sobes.tech
Junior — Middle

Имате ли искуство у развоју или извођењу end-to-end тестова за проверу целокупног корисничког сценарија?

sobes.tech АИ

Одговор од АИ

Да, у Golang за тестирање од краја до краја често се користе оквири који омогућавају покретање потпуних сценарија корисника, укључујући интеракцију са API-јима, базама података и спољашњим сервисима. На пример, можете написати тест који шаље HTTP захтеве вашој апликацији и проверава одговоре, симулирајући понашање корисника.

Пример једноставног end-to-end теста коришћењем стандардног пакета net/http и testing:

package main

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

func TestEndToEnd(t *testing.T) {
    // Креирајте тестни HTTP сервер са вашим handler-ом
    handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        w.WriteHeader(http.StatusOK)
        w.Write([]byte("Здраво, кориснику!"))
    })
    server := httptest.NewServer(handler)
    defer server.Close()

    // Пошаљите HTTP захтев који симулира корисника
    resp, err := http.Get(server.URL)
    if err != nil {
        t.Fatalf("Грешка при слању захтева: %v", err)
    }
    defer resp.Body.Close()

    if resp.StatusCode != http.StatusOK {
        t.Errorf("Очекује се статус 200 OK, добијен %d", resp.StatusCode)
    }
}

У стварним пројектима могу се користити напреднији алати као што су godog за BDD или chromedp за тестирање UI у прегледачу.