Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah anda menguji pelayan HTTP dengan permintaan langsung dalam Go menggunakan 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>
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!