今天测试时候发现用httpmock包,无论如何设置都无法拦截请求。
后来查询文档 https://godoc.org/github.com/jarcoal/httpmock#RegisterResponder , 发现默认只拦截http.Client发送的请求,即
client := &http.Client{}
resp, err := client.Do(req)
而之前用的是
tr := &http.Transport{
// TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}
client := &http.Client{Transport: tr}
造成无法拦截。或者可以用
func ActivateNonDefault(client *http.Client)
进行默认client的设置。
BTW,
httpmock.RegisterResponder("GET", url, ...)
其中url是参数敏感的,即/foo, /foo?bar, /foo?bar=1是不同的url