英文:
Unit testing in 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)
}
}
英文:
I want to test the API function but arguments give the problem.
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)
}
}
答案1
得分: 2
你可以使用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))
请注意,这是一个示例代码,用于演示如何使用httptest进行测试。你需要根据自己的实际情况进行相应的修改和调整。
英文:
You can test it using httptest, something like this:
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))
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论