小编mou*_*kat的帖子

如何模拟第三方包的方法

我有一个简单的函数,可以连接到 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)

unit-testing go

3
推荐指数
1
解决办法
4524
查看次数

标签 统计

go ×1

unit-testing ×1