我有一个简单的函数,可以连接到 mongoDB 并创建一个新文档。现在我如何在单元测试时模拟导入的 mongo 包的方法。
我尝试通过猴子补丁来模拟 GinContext。
但在导入包时无法继续模拟实际的 mongoClient。
func CreateUser(c GinContext) {
var userdetail UserDetails
binderr := c.ShouldBindJSON(&userdetail)
fmt.Println(binderr)
if binderr != nil {
c.JSON(500, gin.H{
"message": "Input payload not matching",
"error": binderr,
})
return
}
//-- Client if of type *mongo.Client.
//-- How do I mock the Client.Database, Client.Database.Connection
collection := Client.Database("demo").Collection("users")
ctx, err1 := context.WithTimeout(context.Background(), 10*time.Second)
if err1 != nil {
}
response, err2 := collection.InsertOne(ctx, userdetail)
if err2 != nil {
log.Println("Some error inserting the document") …Run Code Online (Sandbox Code Playgroud)