Comment se moquer de Gin.Context pour BindJSON
Lors du test du code Go qui utilise le framework Gin et nécessite de se moquer de gin.Context pour BindJSON fonctionnalité, il est essentiel de s'assurer que :
w := httptest.NewRecorder() c, _ := gin.CreateTestContext(w) c.Request = &http.Request{ Header: make(http.Header), }
func MockJsonPost(c *gin.Context, content interface{}) { c.Request.Method = "POST" c.Request.Header.Set("Content-Type", "application/json") jsonbytes, err := json.Marshal(content) if err != nil { panic(err) } c.Request.Body = io.NopCloser(bytes.NewBuffer(jsonbytes)) }
L'argument de contenu peut être n'importe quelle structure de données ou carte marshalable.
Exemple :
func TestPostImageToDBDao(t *testing.T) { w := httptest.NewRecorder() ctx, _ := gin.CreateTestContext(w) ctx.Request = &http.Request{ Header: make(http.Header), } MockJsonPost(ctx, map[string]interface{}{ "articleUUID": "bea1b24d-0627-4ea0-aa2b-8af4c6c2a41c", "imageNames": "b8119536-fad5-4ffa-ab71-2f96cca19697", }) PostImageToDBDao(ctx) assert.EqualValues(t, http.StatusOK, w.Code) }
Ressources connexes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!