Je récupère un document depuis MongoDB et le passe à la fonction transform
par exemple
var doc map[string]interface{}
err := collection.FindOne(context.TODO(), filter).Decode(&doc)
result := transform(doc)
Je veux écrire des tests unitaires pour transform
mais je ne sais pas comment simuler une réponse de MongoDB. Idéalement, je voudrais mettre en place quelque chose comme ceci :
func TestTransform(t *testing.T) {
byt := []byte(`
{"hello": "world",
"message": "apple"}
`)
var doc map[string]interface{}
>>> Some method here to Decode byt into doc like the code above <<<
out := transform(doc)
expected := ...
if diff := deep.Equal(expected, out); diff != nil {
t.Error(diff)
}
}
Un moyen serait de json.Unmarshal
en doc
mais cela donne parfois des résultats différents. Par exemple, si le document dans MongoDB contient un tableau, alors ce tableau est décodé en doc
en tant que bson.A
type pas []interface{}
type.