gpt4 book ai didi

unit-testing - 将 POST 变量添加到 Go 测试 http 请求

转载 作者:IT王子 更新时间:2023-10-29 01:02:46 28 4
gpt4 key购买 nike

我正在尝试将表单变量添加到 Go http 请求。

这是我的 Go 测试的样子:

func sample_test(t *testing.T) {
handler := &my_listener_class{}
reader := strings.NewReader("number=2")
req, _ := http.NewRequest("POST", "/my_url", reader)
w := httptest.NewRecorder()
handler.function_to_test(w, req)
if w.Code != http.StatusOK {
t.Errorf("Home page didn't return %v", http.StatusOK)
}
}

问题是表单数据永远不会传递到我需要测试的函数。

其他相关函数是:

func (listener *my_listener_class) function_to_test(writer http.ResponseWriter, request *http.Request) {
...
}

我使用的是 Go 版本 go1.3.3 darwin/amd64。

最佳答案

您需要向请求添加一个 Content-Type header ,以便处理程序知道如何处理 POST 正文数据:

req, _ := http.NewRequest("POST", "/my_url", reader) //BTW check for error
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")

关于unit-testing - 将 POST 变量添加到 Go 测试 http 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30978105/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com