如何发送 POST 请求 multipart/form-data 字段作为数组进行单元测试?
How to send POST request multipart/form-data field as array for unit testing?
我正在尝试对我的 Go 应用程序进行单元测试,该应用程序使用 gin(PostForm 和 PostFormArray)处理 multipart/form-data 内容类型中的表单数据,例如
x, y := c.PostForm("x"), c.PostFormArray("y")
我可以使用 Go 提供的 mime/multipart 库制作具有非数组值 (PostForm) 的表单字段
buf := new(bytes.Buffer)
w := multipart.NewWriter(buf)
x, _ := w.CreateFormField("x")
x.Write([]byte("This is x value"))
w.Close()
哪个 PostForm 处理得很好,现在我想知道是否有任何方法可以发送一个 multipart/form-data 字段作为其值的数组,如 []string{"this is y 1", "this is y 2"}
以便它与 gin 的 PostFormArray 一起工作。这可能吗?我该怎么做?任何帮助将不胜感激。提前致谢!
您可以创建多个同名字段,例如
buf := new(bytes.Buffer)
w := multipart.NewWriter(buf)
x, _ := w.CreateFormField("x")
x.Write([]byte("This is x value"))
y1, _ := w.CreateFormField("y")
y1.Write([]byte("this is y 1"))
y2, _ := w.CreateFormField("y")
y2.Write([]byte("this is y 2"))
w.Close()
我正在尝试对我的 Go 应用程序进行单元测试,该应用程序使用 gin(PostForm 和 PostFormArray)处理 multipart/form-data 内容类型中的表单数据,例如
x, y := c.PostForm("x"), c.PostFormArray("y")
我可以使用 Go 提供的 mime/multipart 库制作具有非数组值 (PostForm) 的表单字段
buf := new(bytes.Buffer)
w := multipart.NewWriter(buf)
x, _ := w.CreateFormField("x")
x.Write([]byte("This is x value"))
w.Close()
哪个 PostForm 处理得很好,现在我想知道是否有任何方法可以发送一个 multipart/form-data 字段作为其值的数组,如 []string{"this is y 1", "this is y 2"}
以便它与 gin 的 PostFormArray 一起工作。这可能吗?我该怎么做?任何帮助将不胜感激。提前致谢!
您可以创建多个同名字段,例如
buf := new(bytes.Buffer)
w := multipart.NewWriter(buf)
x, _ := w.CreateFormField("x")
x.Write([]byte("This is x value"))
y1, _ := w.CreateFormField("y")
y1.Write([]byte("this is y 1"))
y2, _ := w.CreateFormField("y")
y2.Write([]byte("this is y 2"))
w.Close()