模擬 http.Client Do 方法
在您的程式碼中,您嘗試模擬 http.Client Do 方法以進行測試。由於您定義的 HttpClient 介面只需要一個與 Do 的簽章相符的函數,因此您可以使用模擬物件來滿足此要求。
考慮建立一個ClientMock 結構:
type ClientMock struct {}
實現此模擬結構中的Do 方法如下:
func (c *ClientMock) Do(req *http.Request) (*http.Response, error) { return &http.Response{}, nil }
此ClientMock 透過傳回一個有效地模擬HttpClient 行為虛擬http.Response 且沒有錯誤。
要使用此模擬對象,請將 ClientMock 實例作為客戶端參數注入到 GetOverview 函數中。這可讓您控制模擬物件傳回的 HTTP 回應,使您能夠在測試期間模擬不同的場景。
另一種方法是利用模擬庫。但是,正如您所提到的,許多程式庫沒有明確地為 Do 方法提供模擬。您可以考慮將 http.Client 包裝在自訂類型中,並為該類型提供模擬。
最終,您選擇的模擬策略取決於您的特定測試要求和偏好。
以上是如何有效模擬http.Client Do方法進行測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!