如何发送POST请求多部分/表单数据字段作为数组进行单元测试



我正在尝试为我的Go应用程序进行单元测试,该应用程序使用类似的gin(PostForm和PostFormArray(处理多部分/表单数据内容类型的表单数据

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处理得很好,现在我想知道是否有任何方法可以发送一个以数组为值的多部分/表单数据字段,如[]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()

最新更新