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
553 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!

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