Application de l'échec lors de la lecture du corps de réponse
Tester l'exhaustivité d'un wrapper client HTTP dans Go nécessite de simuler divers scénarios, y compris des erreurs lors de la lecture du corps de réponse. L'extrait de code fourni suppose une fausse configuration de serveur avec un gestionnaire personnalisé. Pour forcer un échec de lecture sur le corps de la réponse, le gestionnaire doit être modifié.
Examen de la documentation du corps de réponse
Selon la documentation de Response.Body, un L'opération de lecture peut renvoyer une erreur dans les scénarios suivants :
Induction d'un échec via un message non valide Réponse HTTP
La méthode la plus simple pour provoquer un échec consiste à générer une réponse HTTP non valide. Par exemple, définir l'en-tête Content-Length sur une valeur non nulle et n'envoyer aucun contenu réel entraînera une erreur EOF inattendue lorsque le client tentera de lire le corps.
Exemple de gestionnaire d'échec
Voici un exemple de gestionnaire qui fait ceci :
<code class="go">handler := func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "1") }</code>
Erreur attendue
Lorsque le client tente de lire le corps de ce gestionnaire, il rencontrera l'erreur suivante :
Unable to read from body unexpected EOF
Cette approche force effectivement l'opération ioutil.ReadAll dans le wrapper à échouer, simulant un scénario d'erreur réaliste pouvant se produire lors de la communication réseau.
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!