登录
首页 >  Golang >  Go问答

单元测试在 Go 中

来源:stackoverflow

时间:2024-02-25 19:51:12 156浏览 收藏

有志者,事竟成!如果你在学习Golang,那么本文《单元测试在 Go 中》,就很适合你!文章讲解的知识点主要包括,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

问题内容

我想测试 api 函数,但参数给出了问题。

func SetAPIConfigHandler(w http.ResponseWriter, r *http.Request) {
    var apiConfig model.Configuration
    err := json.NewDecoder(r.Body).Decode(&apiConfig)
    if err != nil {
        responderror(w, http.StatusBadRequest, err.Error())
    } else {
        utils.Domain = apiConfig.Domain
        utils.BaseURL = apiConfig.BaseURL
        utils.Tenant = apiConfig.Tenant
        respondJSON(w, http.StatusOK, apiConfig)
    }
}

正确答案


您可以使用 httptest 对其进行测试,如下所示:

req := httptest.NewRequest("GET", "http://example.com/foo", nil)
    w := httptest.NewRecorder()
    SetAPIConfigHandler(w, req)

    resp := w.Result()
    body, _ := io.ReadAll(resp.Body)

    fmt.Println(resp.StatusCode)
    fmt.Println(resp.Header.Get("Content-Type"))
    fmt.Println(string(body))

今天关于《单元测试在 Go 中》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>