如何使用httptest 在Go 中測試HTTP 呼叫
簡介
簡介Go 中的HT測試可以使用httptest 套件來簡化。本文探討如何利用 httptest 進行回應和伺服器測試,包括伺服器測試的詳細範例。
測試類型伺服器測試: 模擬伺服器來測試與被測試應用程式的 HTTP 互動。
響應測試resp := httptest.NewRecorder() req, _ := http.NewRequest("GET", "/3D/header/?", nil) http.DefaultServeMux.ServeHTTP(resp, req)
在響應測試中,Recorder 物件捕獲響應及其內容。以下程式碼片段示範了回應測試:
伺服器測試ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, `{"fake twitter json string"}`) }))對於伺服器測試,httptest 模擬伺服器並提供可以使用的網址:
在此範例中,建立了一個使用預先定義JSON 資料進行回應的伺服器。然後,可以在測試的應用程式中使用該伺服器的 URL。
範例:在retrieveTweets 中測試HTTP 呼叫func TestIt(t *testing.T){ 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() } tweet = <-c if tweet != expected2 { t.Fail() } }要測試retrieveTweets 功能:
以上是如何使用「httptest」在 Go 中有效測試 HTTP 呼叫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!