Sobes.tech
Junior — Middle

Kas teil on kogemusi lõpp-tõmbes testide arendamisel või teostamisel kogu kasutaja stsenaariumi kontrollimiseks?

sobes.tech AI

Vastus AI-lt

Jah, Golangis kasutatakse sageli raamistikke, mis võimaldavad käivitada täielikke kasutajaskripte, sealhulgas API-de, andmebaaside ja väliste teenuste interaktsiooni. Näiteks võite kirjutada testi, mis saadab teie rakendusele HTTP-päringuid ja kontrollib vastuseid, simuleerides kasutaja käitumist.

Lihtne end-to-end test näide, kasutades standardpaketti net/http ja testing:

package main

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

func TestEndToEnd(t *testing.T) {
    // Looge test HTTP-server koos oma töötlejaga
    handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        w.WriteHeader(http.StatusOK)
        w.Write([]byte("Tere, kasutaja!"))
    })
    server := httptest.NewServer(handler)
    defer server.Close()

    // Saada HTTP-päring, simuleerides kasutajat
    resp, err := http.Get(server.URL)
    if err != nil {
        t.Fatalf("Viga päringu saatmisel: %v", err)
    }
    defer resp.Body.Close()

    if resp.StatusCode != http.StatusOK {
        t.Errorf("Oodatud staatus 200 OK, saadi %d", resp.StatusCode)
    }
}

Reaalsetes projektides saab kasutada ka arenenumaid tööriistu, näiteks godog BDD jaoks või chromedp UI testimiseks brauseris.