Golang具有这两个相似的库http
和httptest
,并且都具有NewRequest
函数。
如果httptest.NewRequest
全部完成,为什么我们甚至需要http.NewRequest
?
如果我需要为测试创建一个multipart/multiform请求,我需要使用哪一个?
最佳答案
如文档中所示, httptest.NewRequest
“返回适合传入到http.Handler进行测试的新传入服务器请求”,而 http.NewRequest
“返回适合与Client.Do或Transport.RoundTrip一起使用的请求”。因此,如果要在单元测试中将请求直接传递给处理程序,请使用httptest.NewRequest
;如果要使用http.Client
执行完整的往返,请使用http.NewRequest
。