HTTP-Aufrufe in Go mit Httptest testen
Das httptest-Paket bietet Funktionen zum Testen von HTTP-Clients und -Servern. Um dieses Paket zum Testen Ihres Go-Codes zu verwenden, berücksichtigen Sie die folgenden Strategien:
Antworttests:
Erstellen Sie eine neue Rekorderinstanz über httptest.NewRecorder(). Verwenden Sie diesen Rekorder, um den Antwortstatuscode und den Textinhalt auszuwerten.
Beispiel:
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) }
Servertests:
Erstellen Sie einen neuen Server mit httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {}). Dieser Server simuliert einen HTTP-Server und ermöglicht Ihnen das Testen Ihrer HTTP-Client-Interaktionen.
Beispiel:
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() }
Das obige ist der detaillierte Inhalt vonWie kann das „httptest'-Paket von Go das Testen von HTTP-Clients und -Servern vereinfachen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!