答案 0 :(得分:5)
httptest.Server有一个URL字段,您可以使用该值发送请求,因此这将是您的函数的url
参数。
然后,为了测试http.Request是否与正确的标题和正文一起发送,您可以在调用httptest.NewServer时使用自定义处理程序创建测试服务器。然后,服务器将在发送到上述url的每个请求上调用此处理程序,因此您的测试逻辑应该进入此处理程序。
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Test that r is what you expect it to be
}))
defer ts.Close()
err := postJson(ts.URL+"/foo/bar", data)