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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

httptest 響應(yīng)重新記錄保留舊值

httptest 響應(yīng)重新記錄保留舊值

Go
繁花不似錦 2022-09-12 16:19:11
我有一個需要測試的函數(shù):handlerAuthenticationfunc handlerAuthentication(c *gin.Context) {    session := Session.GetSession(c)    var login Login    err := c.BindJSON(&login)    if err != nil {        c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": err.Error()})        return    }    client, err := initClient(c, login)    fmt.Println("Error: ",err)    if err != nil {        fmt.Println("There's an error !")        c.JSON(http.StatusUnauthorized, gin.H{"error": ErrorWrongLogin})        return    }    err = (*client).Logout(c)    if err != nil {        return    }    session.Set("username", login.Username)    session.Set("password", login.Password)    err = session.Save()    if err != nil {        c.JSON(http.StatusInternalServerError, gin.H{"error": "an error occurred during the save of the session:" + err.Error()})        return    }    c.JSON(http.StatusOK, "Connected")}為此,我做了這個:func TestHandlerAuthentication(t *testing.T) {    UrlOdoo = "https://isi.nc"    resp := httptest.NewRecorder()    gin.SetMode(gin.TestMode)    c, r := gin.CreateTestContext(resp)    r.POST("/test", func(c *gin.Context) {        handlerAuthentication(c)    })
查看完整描述

1 回答

?
MMTTMM

TA貢獻1869條經(jīng)驗 獲得超4個贊

我需要為每個測試初始化一個新測試。為此,我將初始化移動到函數(shù):httptest.ResponseRecordert.Run(name,func(t *testing.T)


func TestHandlerAuthentication(t *testing.T) {

    UrlOdoo = "https://isi.nc"


    ctrl := gomock.NewController(t)

    defer ctrl.Finish()


    Odoo = OdooRPC{createMockOdooClient}

    client = mock_odoorpc.NewMockOdooClient(ctrl)

    client.EXPECT().Authenticate(gomock.Any(), gomock.Any(), invalidUsername, invalidPassword).AnyTimes().Return(fmt.Errorf("invalid login"))

    client.EXPECT().Authenticate(gomock.Any(), gomock.Any(), validUsername, validPassword).AnyTimes().Return(nil)

    client.EXPECT().Logout(gomock.Any()).AnyTimes().Return(nil)


    session = mock_session.NewMockSession(ctrl)

    Session = SessionGetter{createMockSession}

    session.EXPECT().Set("username", validUsername).AnyTimes().Return()

    session.EXPECT().Set("password", validPassword).AnyTimes().Return()

    session.EXPECT().Save().AnyTimes().Return(nil)


    for name, test := range map[string]struct {

        input Login

        want  int

    }{

        "valid login": {

            input: Login{

                Username: validUsername,

                Password: validPassword,

            },

            want: 200,

        },

        "invalid login": {

            input: Login{

                Username: invalidUsername,

                Password: invalidPassword,

            },

            want: 401,

        },

    } {

        t.Run(name, func(t *testing.T) {

            resp := httptest.NewRecorder()

            gin.SetMode(gin.TestMode)

            c, r := gin.CreateTestContext(resp)


            r.POST("/test", func(c *gin.Context) {

                handlerAuthentication(c)

            })


            body, _ := json.Marshal(test.input)

            c.Request, _ = http.NewRequest(http.MethodPost, "/test", strings.NewReader(string(body)))

            r.ServeHTTP(resp, c.Request)

            assert.Equal(t, test.want, resp.Code)

        })

    }

}


查看完整回答
反對 回復(fù) 2022-09-12
  • 1 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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