亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

預計不會調用查詢 [...]

預計不會調用查詢 [...]

Go
墨色風雨 2022-07-18 16:22:22
我想測試一個數據庫查詢。為此,我嘗試使用 sqlmock 庫??杀氖俏覜]有找到解決方案我的測試是    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)        }    })}我的代碼看起來像這樣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}如果我運行測試,我會收到以下錯誤2020/12/07 20:23:46 call to Query 'SELECT * FROM pictures' with args [], was not expected, next expectation is: ExpectedBegin => expecting database transaction Beginexit status 1如果調用了查詢,我該如何檢查?
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

好的,所以我不得不打電話db.Begin()。



查看完整回答
反對 回復 2022-07-18
  • 1 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號