第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

為什么我使用杜松子酒和圍棋的測(cè)試沒(méi)有通過(guò)?

為什么我使用杜松子酒和圍棋的測(cè)試沒(méi)有通過(guò)?

Go
三國(guó)紛爭(zhēng) 2022-08-15 19:39:57
我正在嘗試測(cè)試我的 API。在這種情況下,我有這個(gè)主文件:package mainimport (    "fmt"    "net/http"    "github.com/gin-gonic/gin")func main() {    r := getRouter()    r.Run(":8080")}func getRouter() *gin.Engine {    // We create the instance for Gin    r := gin.Default()    // Path to the static files. /static is rendered in the HTML and /media is the link to the path to the  images, svg, css.. the static files    r.StaticFS("/static", http.Dir("../media"))    // Path to the HTML templates. * is a wildcard    r.LoadHTMLGlob("*.html")    r.NoRoute(renderHome)    // This get executed when the users gets into our website in the home domain ("/")    r.GET("/", renderHome)    r.POST("/", getData)    return r}func renderHome(c *gin.Context) {    c.HTML(http.StatusOK, "my-html.html", gin.H{})}func getData(c *gin.Context) {    formData := &struct {        ID int `json:"mykey"  binding:"required" `    }{}    // Validation (with Gin)    if err := c.Bind(formData); err != nil {        c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})        fmt.Print(err)        return    }}我有這個(gè)main_test文件package mainimport (    "bytes"    "net/http"    "net/http/httptest"    "testing"    "github.com/stretchr/testify/assert")func TestPost(t *testing.T) {    // Create Infraestructure    router := getRouter()    w := httptest.NewRecorder()    // Rent Bike    body := bytes.NewBuffer([]byte("{\"mykey\":1}"))    req, _ := http.NewRequest("POST", "/", body)    router.ServeHTTP(w, req)    // Test data    assert.Equal(t, http.StatusOK, w.Code)}測(cè)試失敗,因?yàn)樵诮壎〞r(shí),Gin找不到j(luò)son密鑰,給出錯(cuò)誤mykeyKey: 'ID' Error:Field validation for 'ID' failed on the 'required' tag為什么會(huì)發(fā)生這種情況?我嘗試以不同的方式格式化JSON正文,但我無(wú)法使其正常工作
查看完整描述

1 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超4個(gè)贊

Gin 根據(jù)請(qǐng)求選擇要使用的綁定。Content-Type

使用 Bind 方法時(shí),Gin 會(huì)嘗試根據(jù)內(nèi)容類(lèi)型標(biāo)頭推斷綁定程序。如果您確定要綁定的內(nèi)容,則可以使用 MustBindWith 或 ShouldBindWith。

將代碼更改為:

    req, err := http.NewRequest("POST", "/", body)
    require.Nil(t, err)
    req.Header.Set("Content-Type", "application/json")
    router.ServeHTTP(w, req)


查看完整回答
反對(duì) 回復(fù) 2022-08-15
  • 1 回答
  • 0 關(guān)注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)