Maison > développement back-end > Golang > Comment le package « httptest » de Go peut-il simplifier les tests des clients et des serveurs HTTP ?

Comment le package « httptest » de Go peut-il simplifier les tests des clients et des serveurs HTTP ?

Mary-Kate Olsen
Libérer: 2024-12-13 09:12:13
original
481 Les gens l'ont consulté

How Can Go's `httptest` Package Simplify HTTP Client and Server Testing?

Test des appels HTTP dans Go à l'aide de Httptest

Le package httptest fournit des fonctionnalités pour tester les clients et les serveurs HTTP. Pour utiliser ce package pour tester votre code Go, envisagez les stratégies suivantes :

Test de réponse :

Créez une nouvelle instance d'enregistreur via httptest.NewRecorder(). Utilisez cet enregistreur pour évaluer le code d'état de la réponse et le contenu du corps.

Exemple :

resp := httptest.NewRecorder()
req, _ := http.NewRequest("GET", "/", nil)
http.DefaultServeMux.ServeHTTP(resp, req)
if resp.Code != http.StatusOK {
    t.Errorf("Expected status code 200, got %d", resp.Code)
}
Copier après la connexion

Test du serveur :

Établissez un nouveau serveur en utilisant httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}). Ce serveur simule un serveur HTTP, vous permettant de tester vos interactions client HTTP.

Exemple :

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()
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal