栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

golang如何现场测试http服务器?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

golang如何现场测试http服务器?

使用net / http /
httptest.Server
类型来测试实时服务器。

func TestIndex(t *testing.T) {  // Create server using the a router initialized elsewhere. The router  // can be a Gorilla mux as in the question, a net/http ServeMux,   // http.DefaultServeMux or any value that statisfies the net/http  // Handler interface.  ts := httptest.NewServer(router)    defer ts.Close()  newreq := func(method, url string, body io.Reader) *http.Request {    r, err := http.NewRequest(method, url, body)    if err != nil {        t.Fatal(err)    }    return r  }  tests := []struct {    name string    r    *http.Request  }{    {name: "1: testing get", r: newreq("GET", ts.URL+"/", nil)},    {name: "2: testing post", r: newreq("POST", ts.URL+"/", nil)}, // reader argument required for POST  }  for _, tt := range tests {    t.Run(tt.name, func(t *testing.T) {        resp, err := http.DefaultClient.Do(tt.r)        defer resp.Body.Close()        if err != nil { t.Fatal(err)        }        // check for expected response here.    })  }}

尽管该问题使用Gorilla多路复用器,但此答案中的方法和详细信息适用于满足http.Handler接口的任何路由器。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413138.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号