所以我刚刚开始掌握 Golang。我正在为 funsies 编写一个应用程序,只是为了理解并理解它。
我有一大堆函数将与数据库交互,我在数据库中传入*SQL.DB要使用的函数。我可以使用sqlmock的模拟接口轻松测试这些内容。
那里没问题。
我现在正在为应用程序编写初始化函数,该函数将启动数据库连接,该连接将附加到结构并从那里传递到实用程序函数。
然而,我正在努力寻找一种方法来轻松测试该连接,而无需设置实际数据库的麻烦。
所以我猜我的应用程序结构可能很糟糕,或者我错过了一些可能非常明显的东西。
所以这里有一些示例代码来说明我的困境。
util.go
package main
import (
"log"
"database/sql"
"github.com/go-sql-driver/mysql"
)
func DoDBStuff(db *sql.DB) {
rows, err := db.Query("SELECT column1, column2 FROM example")
if err != nil {
log.Error(err)
}
// do stuff with rows
}
Run Code Online (Sandbox Code Playgroud)
util_test.go
package main
import (
"testing"
"github.com/DATA-DOG/go-sqlmock"
)
func TestDoDBStuff(t *testing.T) {
db, mock, err := sqlmock.New()
if err != nil {
t.Fatalf("An error '%s' was not expected when opening a stub …Run Code Online (Sandbox Code Playgroud) go ×1