想象我有一个
Client
结构来保存一些依赖项
type Client struct {
httpClient *http.Client
config *Config
}
我有一个函数,它使用指向该结构的指针接收器并执行 http 调用
func (client *Client) Get() (*Response, error) {
...
client.httpClient.get(url)
}
我的难题是,我觉得我无法模拟那些没有作为参数传递给函数的东西,而是通过 *Client 指针接收器访问来传递的东西。
能够模拟底层 httpClient 输出的最佳方法是什么?
尝试使用接口,但我对嵌入式依赖项有点困惑
能够模拟底层 httpClient 输出的最佳方法是什么?
完全不要嘲笑它。使用正确的 net/http.Client 并进行实际 HTTP 调用。
使用测试服务器作为目标,例如使用 net/http/httptest.NewServer 启动一个并使用提供合适测试响应的假处理程序。