我的主要代码如下:
func testdb(db *sql.DB) error {
query := "SELECT test_col FROM test_table"
rows, err := db.Query(query)
if err != nil {
return err
}
if rows != nil {
log.Info("got data")
}
return nil
}
此功能的测试用例:
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()
mock.ExpectBegin()
rows := sqlmock.NewRows([]string{"test_col"}).AddRow("test-col")
query := "SELECT test_col FROM test_table"
mock.ExpectQuery(query).WillReturnRows(rows).WillReturnError(nil)
mock.ExpectCommit()
err = testdb(db)
if err != nil {
log.Error(err)
}
我收到此错误
使用参数args []来查询'SELECT test_col FROM test_table'的调用不是所期望的,下一个期望是:ExpectedBegin =>期望数据库事务开始
我尝试查看sql模拟示例,看起来我在做同样的事情, 甚至查询在main方法中也完全相同。