首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用查询[...]是没有预料到的

调用查询[...]是没有预料到的
EN

Stack Overflow用户
提问于 2020-12-08 03:28:52
回答 1查看 204关注 0票数 0

我想在go中测试一个DB查询。为此,我尝试使用sqlmock库。遗憾的是,我没有找到一个解决方案

我的测试是

代码语言:javascript
复制
    t.Run("call database", func(t *testing.T) {
        db, mock, err := sqlmock.New()
        if err != nil {
            t.Fatalf("an error '%s' was not expected when opening a stub database connection", err)
        }
        defer db.Close()
        var picArray []string
        technique := "ballpoint"

        mock.ExpectBegin()
        mock.ExpectQuery("SELECT * FROM pictures")

        wanted := picture.Picture{"hurr", "durr", 2020, "hurrdurr"}
        got := GetPicture(db, technique)
        if got != wanted {
            t.Errorf("got %q, wanted %q", got, picArray)
        }
    })
}

我的代码看起来像这样

代码语言:javascript
复制
func GetPicture(db *sql.DB, style string) picture.Picture {
    rows, err := db.Query("SELECT * FROM pictures")
    if err != nil {
        log.Fatal(err)
    }

    defer rows.Close()
    var (
        name      string
        technique string
        year      int
        fileName  string
    )
    pic := picture.Picture{}
    for rows.Next() {
        err := rows.Scan(&name, &technique, &year, &fileName)
        if err != nil {
            log.Fatal(err)
        }
        log.Println(name, technique, year, fileName)
        pic.Name = name
        pic.Technique = technique
        pic.Year = year
        pic.FileName = fileName
    }
    err = rows.Err()
    if err != nil {
        log.Fatal(err)
    }

    return pic
}

如果我运行测试,我会得到以下错误

代码语言:javascript
复制
2020/12/07 20:23:46 call to Query 'SELECT * FROM pictures' with args [], was not expected, next expectation is: ExpectedBegin => expecting database transaction Begin
exit status 1

如果查询被调用,我如何检查?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-09 03:35:48

所以我不得不打电话给db.Begin()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65188140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档