Cara Menguji Panggilan HTTP dalam Go Menggunakan httptest
Pengenalan
Ujian HTTP dalam Go boleh dipermudahkan menggunakan pakej httptest. Artikel ini meneroka cara memanfaatkan httptest untuk respons dan ujian pelayan, termasuk contoh terperinci ujian pelayan.
Jenis Ujian
httptest menyediakan dua kategori ujian:
Ujian Respons
Dalam ujian tindak balas, objek Perakam menangkap respons dan kandungannya. Coretan kod berikut menunjukkan ujian respons:
resp := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/3D/header/?", nil) http.DefaultServeMux.ServeHTTP(resp, req)
Ujian Pelayan
Untuk ujian pelayan, httptest mensimulasikan pelayan dan menyediakan URL yang boleh digunakan:
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `{"fake twitter json string"}`) }))
Dalam contoh ini, pelayan yang bertindak balas dengan data JSON yang dipratentukan dibuat. URL pelayan ini kemudiannya boleh digunakan dalam aplikasi yang sedang diuji.
Contoh: Menguji Panggilan HTTP dalam retrieveTweets
Untuk menguji fungsi retrieveTweets:
func TestIt(t *testing.T){ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `{"fake twitter json string"}`) })) defer ts.Close() twitterUrl = ts.URL c := make(chan *twitterResult) go retrieveTweets(c) tweet := <-c if tweet != expected1 { t.Fail() } tweet = <-c if tweet != expected2 { t.Fail() } }
Dengan mengejek pelayan, kami boleh mengesahkan keputusan yang diterima oleh retrieveTweets fungsi.
Atas ialah kandungan terperinci Bagaimana untuk Menguji Panggilan HTTP dengan Berkesan dalam Go menggunakan `httptest`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!