如何测试表单提交

How to test form submission

我有一个登录表单,用户填写了一些 html:

<form method="post" enctype="multipart/form-data">
        <div class="form"><input name="username"> </div>
        <div class="form">
        <button type="submit">Login</button>
</form>

我想测试是否正确接收了用户名。我可以发送多部分表单,但是它包含在请求的 body 中,而不是 postform.

    form := url.Values{}
    form.Set("username", "Bob")

    // Create request
    req, _ := http.NewRequest("POST", "/login", strings.NewReader(form.Encode())) // sends as multipart form in request body
    req.Header.Set("Content-Type", "application/www-form-urlencoded")
    testRouter.ServeHTTP(rr, req)

如何将表单数据附加为 Postform 发出请求,以便我可以从后端提取它 c.Postform("username"),就像通过浏览器提交一样?

将按钮保留在按钮类型为提交的表单中

<form method="post" enctype="multipart/form-data">
   <div class="form">
      <input name="username"> 
      <input type="submit" name="submit" value="submit"/>
   </div>
</form>

想通了。转动你可以简单地做 req.PostForm = form.....