Comment créer un serveur HTTP non démarré à l'aide de la fonction net/http/httptest.NewUnstartedServer dans Golang
Aperçu :
Dans Golang, nous pouvons utiliser le package net/http pour créer et gérer des serveurs HTTP. Lorsque vous effectuez des tests unitaires, vous devez parfois créer un serveur HTTP non démarré pour simuler le comportement du serveur dans le test. Dans ce cas, vous pouvez utiliser la fonction NewUnstartedServer dans le package net/http/httptest pour créer un serveur HTTP non démarré.
La fonction NewUnstartedServer est une fonction du package net/http/httptest qui crée un serveur HTTP non démarré en fonction des paramètres transmis. Lorsque nous appelons cette fonction, une instance *httptest.Server sera renvoyée, qui représente un serveur non démarré. Nous pouvons utiliser cette instance dans nos tests pour simuler divers comportements de serveur.
Vous trouverez ci-dessous un exemple de code spécifique pour montrer comment utiliser la fonction NewUnstartedServer pour créer un serveur HTTP non démarré.
Exemple de code :
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() }
Dans l'exemple ci-dessus, nous créons d'abord un serveur HTTP non démarré à l'aide de la fonction httptest.NewUnstartedServer. La fonction de gestionnaire du serveur est une fonction anonyme qui renvoie simplement « Hello, World ! » au client demandeur.
Ensuite, nous appelons la méthode server.Start() pour démarrer le serveur HTTP. Une fois le serveur démarré, nous utilisons la fonction http.Get pour lancer une requête GET vers l'URL du serveur et obtenir la réponse renvoyée par le serveur.
Enfin, nous affichons le contenu de la réponse et appelons server.Close() pour fermer le serveur HTTP.
Il convient de noter que le serveur HTTP non démarré simule uniquement les réponses au client qui envoie la requête, et n'écoute ni ne traite réellement les requêtes de l'extérieur. Par conséquent, vous n'avez pas à vous soucier des conflits ou des effets avec le serveur réel lorsque vous utilisez un serveur HTTP non démarré dans vos tests.
Résumé :
Dans Golang, l'utilisation de la fonction net/http/httptest.NewUnstartedServer peut facilement créer un serveur HTTP non démarré pour simuler le comportement du serveur lors des tests. Le serveur créé par cette fonction peut être démarré via la méthode server.Start() et utilise des fonctions telles que http.Get pour simuler l'envoi des requêtes du client. Après utilisation, vous pouvez appeler la méthode server.Close() pour arrêter le serveur. Cette méthode nous permet de tester facilement unitairement le serveur HTTP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!