Golang HTTP集成测试
发布时间:2020-12-16 19:26:12 所属栏目:大数据 来源:网络整理
导读:我有一个用Go编写的小服务.我已经用httptest等测试了它,但是,我正在嘲笑数据库等… 我想做什么: 使用空数据库启动我在生产中使用的同一台服务器 使用HTTP对其进行测试 获取这些测试的覆盖范围 空数据库部分不是问题,因为我通过环境变量使所有内容都可以配置
我有一个用Go编写的小服务.我已经用httptest等测试了它,但是,我正在嘲笑数据库等…
我想做什么: >使用空数据库启动我在生产中使用的同一台服务器 空数据库部分不是问题,因为我通过环境变量使所有内容都可以配置. 向它发出请求也不是问题,因为它只是标准的Go代码…… 问题是:我不知道如何以一种我可以测量它的覆盖范围(以及它的子包)的方式启动服务器.此外,主服务器代码在主函数内…我甚至不知道我是否可以从其他地方调用它(我尝试了标准方式,但没有反射和类似的东西). 我是一个使用Go的新人,所以,我可能会说废话.
您可以在测试中启动http服务器,并对其发出请求.
为了更方便,您可以在测试中使用 ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter,r *http.Request) { fmt.Fprintln(w,"Hello,client") })) defer ts.Close() res,err := http.Get(ts.URL) if err != nil { log.Fatal(err) } greeting,err := ioutil.ReadAll(res.Body) res.Body.Close() if err != nil { log.Fatal(err) } fmt.Printf("%s",greeting) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |