Maison >développement back-end >Golang >Comment tester les appels HTTP en Go à l'aide de Httptest
Test des appels HTTP en Go avec Httptest
Lors de la mise en œuvre d'une fonction HTTPPost pour publier des messages au format JSON sur une URL spécifiée, rédaction de cas de test est crucial pour garantir l’exactitude de la fonction. Le package httptest fournit un moyen puissant de simuler un serveur HTTP, permettant aux développeurs de tester leurs clients HTTP sans interagir avec un serveur externe.
Utiliser Httptest pour simuler un serveur HTTP
Pour utiliser httptest, vous pouvez créer un serveur fictif à l'aide de la fonction httptest.NewServer. Ce serveur fictif remplace le serveur réel, vous permettant de contrôler la réponse qu'il fournit.
<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>
Dans cet exemple, un serveur fictif est créé avec une fonction de gestionnaire qui renvoie une réponse prédéfinie. . Vous pouvez également inspecter la requête reçue par le serveur fictif pour valider les données envoyées par la fonction HTTPPost.
Assertion de la réponse et de l'erreur
Une fois que vous avez votre serveur fictif en place, vous pouvez procéder à l'affirmation sur la réponse et l'erreur renvoyées par la fonction HTTPPost. Vous pouvez utiliser les différentes méthodes fournies par le package testing pour vérifier le comportement attendu.
Par exemple, vous pouvez vérifier que le code de réponse renvoyé est celui que vous attendez ou que l'erreur renvoyée est nul si aucune erreur n’est attendue. En testant minutieusement votre fonction HTTPPost, vous pouvez augmenter votre confiance dans son exactitude et sa robustesse.
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!