Menguji Panggilan HTTP dalam Go dengan Httptest
Apabila melaksanakan fungsi HTTPPost untuk menyiarkan mesej dalam format JSON ke URL yang ditentukan, menulis kes ujian adalah penting untuk memastikan ketepatan fungsi. Pakej httptest menyediakan cara yang berkuasa untuk mengejek pelayan HTTP, membenarkan pembangun menguji klien HTTP mereka tanpa berinteraksi dengan pelayan luaran.
Menggunakan Httptest untuk Mengejek Pelayan HTTP
Untuk menggunakan httptest, anda boleh mencipta pelayan olok-olok menggunakan fungsi httptest.NewServer. Pelayan olok-olok ini bertindak sebagai stand-in untuk pelayan sebenar, membolehkan anda mengawal respons yang diberikannya.
<code class="go">func TestYourHTTPPost(t *testing.T){ ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `response from the mock server goes here`) // you can also inspect the contents of r (the request) to assert over it })) defer ts.Close() mockServerURL = ts.URL message := "the message you want to test" resp, err := HTTPPost(message, mockServerURL) // assert over resp and err here }</code>
Dalam contoh ini, pelayan olok-olok dicipta dengan fungsi pengendali yang mengembalikan respons yang dipratentukan . Anda juga boleh memeriksa permintaan yang diterima oleh pelayan olok-olok untuk mengesahkan data yang dihantar oleh fungsi HTTPPost.
Menegaskan Respons dan Ralat
Sebaik sahaja anda mempunyai pelayan olok-olok anda di tempat, anda boleh meneruskan untuk menegaskan respons dan ralat yang dikembalikan oleh fungsi HTTPPost. Anda boleh menggunakan pelbagai kaedah yang disediakan oleh pakej ujian untuk mengesahkan gelagat yang dijangkakan.
Sebagai contoh, anda boleh menyemak sama ada kod respons yang dikembalikan adalah yang anda jangkakan atau bahawa ralat yang dikembalikan adalah sifar jika tiada ralat dijangka. Dengan menguji fungsi HTTPPost anda secara menyeluruh, anda boleh meningkatkan keyakinan anda terhadap ketepatan dan keteguhannya.
Atas ialah kandungan terperinci Cara Menguji Panggilan HTTP dalam Go Menggunakan Httptest. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!