Fehler beim Lesen des Antworttextes erzwingen
Um die Gründlichkeit eines HTTP-Client-Wrappers in Go zu testen, müssen verschiedene Szenarien simuliert werden, einschließlich Fehlern beim Lesen des Antwortkörper. Der bereitgestellte Codeausschnitt geht von einem gefälschten Server-Setup mit einem benutzerdefinierten Handler aus. Um einen Lesefehler für den Antworttext zu erzwingen, muss der Handler geändert werden.
Untersuchung der Antworttextdokumentation
Laut der Dokumentation von Response.Body a Der Lesevorgang kann in den folgenden Szenarien einen Fehler zurückgeben:
Auslösen eines Fehlers durch eine ungültige HTTP-Antwort
Die einfachste Methode, einen Fehler herbeizuführen, besteht darin, eine ungültige HTTP-Antwort zu generieren. Wenn Sie beispielsweise den Content-Length-Header auf einen Wert ungleich Null setzen und keinen tatsächlichen Inhalt senden, kommt es zu einem unerwarteten EOF-Fehler, wenn der Client versucht, den Text zu lesen.
Beispiel für einen fehlgeschlagenen Handler
Hier ist ein Beispielhandler, der dies tut:
<code class="go">handler := func(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Length", "1") }</code>
Erwartet Fehler
Wenn der Client versucht, den Textkörper von diesem Handler zu lesen, tritt der folgende Fehler auf:
Unable to read from body unexpected EOF
Dieser Ansatz erzwingt effektiv die Operation ioutil.ReadAll im Wrapper zu scheitern, indem ein realistisches Fehlerszenario simuliert wird, das während der Netzwerkkommunikation auftreten kann.
Das obige ist der detaillierte Inhalt vonWie simuliert man Fehler beim Lesen des Antworttexts beim Testen von Go-HTTP-Clients?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!