Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah anda menguji pelayan HTTP dengan permintaan langsung dalam Go menggunakan httptest.Server?

Bagaimanakah anda menguji pelayan HTTP dengan permintaan langsung dalam Go menggunakan httptest.Server?

Patricia Arquette
Lepaskan: 2024-11-03 08:01:30
asal
643 orang telah melayarinya

How do you test an HTTP server with live requests in Go using httptest.Server?

Menguji Pelayan HTTP dengan Permintaan Langsung dalam Go

Ujian langsung pelayan HTTP membolehkan anda mengesahkan kefungsian titik akhir anda secara nyata -persekitaran dunia. Pendekatan ini amat berguna apabila pelayan anda bergantung pada perkhidmatan luaran atau menggunakan logik penghalaan yang kompleks.

Menggunakan net/http/httptest.Server untuk Ujian Langsung

Net/ http/httptest.Jenis pelayan dalam perpustakaan standard Go menyediakan cara untuk mencipta pelayan HTTP secara langsung untuk tujuan ujian. Begini cara anda boleh menggunakannya:

<code class="go">// Create a router that will be used for testing.
router := mux.NewRouter()

// Create a test server using the router.
ts := httptest.NewServer(router)

// Send test requests to the server.
newreq := func(method, url string, body io.Reader) *http.Request {
    r, err := http.NewRequest(method, url, body)
    if err != nil {
        t.Fatal(err)
    }
    return r
}

tests := []struct {
    name string
    r    *http.Request
}{
    {name: "1: testing get", r: newreq("GET", ts.URL+"/", nil)},
    {name: "2: testing post", r: newreq("POST", ts.URL+"/", nil)},
}

for _, tt := range tests {
    t.Run(tt.name, func(t *testing.T) {
        resp, err := http.DefaultClient.Do(tt.r)
        defer resp.Body.Close()
        if err != nil {
            t.Fatal(err)
        }
        // Check for expected response.
    })
}</code>
Salin selepas log masuk

Dalam contoh ini, kami mencipta penghala Gorilla mux dan kemudian menggunakan httptest.NewServer untuk mencipta pelayan langsung menggunakan penghala itu. Kami mentakrifkan beberapa permintaan ujian dan menghantarnya ke pelayan menggunakan http.DefaultClient. Kami kemudiannya boleh mengesahkan respons yang diterima daripada pelayan untuk memastikan ia sepadan dengan jangkaan kami.

Nota: Walaupun soalan itu secara khusus menyebut Gorilla mux, pendekatan yang diterangkan di sini boleh digunakan untuk mana-mana penghala yang memenuhi antara muka http.Handler.

Atas ialah kandungan terperinci Bagaimanakah anda menguji pelayan HTTP dengan permintaan langsung dalam Go menggunakan httptest.Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan