首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用go-sqlmock获取SQL查询中的参数值

使用go-sqlmock获取SQL查询中的参数值
EN

Stack Overflow用户
提问于 2017-05-16 18:35:03
回答 1查看 1.2K关注 0票数 2

我目前正在使用go-sqlmock模拟我的数据库。

有没有办法在执行查询时获得传递给sql驱动程序的值?就像这里作为参数传递的arg变量:

代码语言:javascript
复制
import (
   "database/sql"
)

func retrieveInfo(){
    // this function returns an initialized instance of type *sql.DB
    DbDriver := initDb()

    query := "my query"
    arg := 3
    rows, err := Db_driver.Query(query, arg)
    // ...
}

然后我想要测试函数,并且在测试时我想知道变量arg的值。我认为这应该是可能的,因为它被传递给go-sqlmock创建的“伪”驱动程序。我的测试逻辑如下所示:

代码语言:javascript
复制
import "github.com/DATA-DOG/go-sqlmock"

// Inits mock and overwrites the original driver
db, mock, err := sqlmock.New()
Db_driver = db

func TestRetrieveInfo(t *testing.T){
   // query that matchs the one in retrieveInfo()
   query := "..."
   queryRows := sqlmock.NewRows([]string{"column1, column2"}).FromCSVString("value1, value2")
   mock.ExpectQuery(query).WillReturnRows(queryRows)
}
EN

回答 1

Stack Overflow用户

发布于 2018-07-11 18:08:29

您可以将真正的驱动程序与插装包装在一起,以记录值。

使用package github.com/luna-duclos/instrumentedsql

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

https://stackoverflow.com/questions/43999078

复制
相关文章

相似问题

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