[英]Call to Query with args [], was not expected in go-sqlmock for compound SQL queries
[英]Get argument value in SQL query with go-sqlmock
我當前正在使用go-sqlmock模擬我的數據庫。
執行查詢時,是否有任何方法可以獲取已傳遞給sql驅動程序的值? 就像在這里作為參數傳遞的arg
變量一樣:
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創建的“假”驅動程序。 我的測試邏輯如下所示:
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)
}
您可以使用工具包裝實際的驅動程序以記錄值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.