Rumah >pembangunan bahagian belakang >Golang >Cara membuat pelayan HTTP yang belum dimulakan menggunakan fungsi net/http/httptest.NewUnstartedServer dalam golang
Cara membuat pelayan HTTP yang belum dimulakan menggunakan fungsi net/http/httptest.NewUnstartedServer dalam golang
Ikhtisar: #🎜🎜 Di Golang, kami boleh menggunakan pakej net/http untuk membina dan mengendalikan pelayan HTTP. Semasa melakukan ujian unit, kadangkala anda perlu mencipta pelayan HTTP yang belum dimulakan untuk mensimulasikan tingkah laku pelayan dalam ujian. Dalam kes ini, anda boleh menggunakan fungsi NewUnstartedServer dalam pakej net/http/httptest untuk mencipta pelayan HTTP yang belum dimulakan.
package main import ( "fmt" "net/http" "net/http/httptest" "testing" ) func main() { // 创建一个未启动的HTTP服务器 server := httptest.NewUnstartedServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, World!") })) // 启动HTTP服务器 server.Start() // 发送HTTP请求到服务器 resp, err := http.Get(server.URL) if err != nil { fmt.Println("发送请求失败", err) return } defer resp.Body.Close() // 输出响应内容 body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("读取响应失败", err) return } fmt.Println("响应:", string(body)) // 停止HTTP服务器 server.Close() }Dalam contoh di atas, kami mula-mula mencipta pelayan HTTP yang belum dimulakan menggunakan fungsi httptest.NewUnstartedServer. Fungsi pengendali pelayan ialah fungsi tanpa nama yang hanya mengembalikan "Hello, World!" Kemudian, kami memanggil kaedah pelayan.Start() untuk memulakan pelayan HTTP. Selepas pelayan dimulakan, kami menggunakan fungsi http.Get untuk memulakan permintaan GET ke URL pelayan dan mendapatkan respons yang dikembalikan oleh pelayan. Akhir sekali, kami mengeluarkan kandungan respons dan memanggil pelayan.Close() untuk menutup pelayan HTTP. Perlu diingatkan bahawa pelayan HTTP yang belum dimulakan hanya mensimulasikan respons kepada klien yang menghantar permintaan, dan sebenarnya tidak mendengar dan memproses permintaan dari luar. Oleh itu, anda tidak perlu risau tentang konflik atau kesan dengan pelayan sebenar apabila menggunakan pelayan HTTP yang belum dimulakan dalam ujian anda. Ringkasan:
Di Golang, menggunakan fungsi net/http/httptest.NewUnstartedServer boleh mencipta pelayan HTTP yang belum dimulakan dengan mudah untuk mensimulasikan tingkah laku pelayan dalam ujian. Pelayan yang dicipta oleh fungsi ini boleh dimulakan melalui kaedah pelayan.Start(), dan menggunakan fungsi seperti http.Get untuk mensimulasikan permintaan menghantar pelanggan. Selepas digunakan, anda boleh memanggil kaedah pelayan.Close() untuk menutup pelayan. Kaedah ini membolehkan kami menguji unit pelayan HTTP dengan mudah.
Atas ialah kandungan terperinci Cara membuat pelayan HTTP yang belum dimulakan menggunakan fungsi net/http/httptest.NewUnstartedServer dalam golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!