新增通道服务相关测试用例
This commit is contained in:
40
pkg/testutil/db.go
Normal file
40
pkg/testutil/db.go
Normal file
@@ -0,0 +1,40 @@
|
||||
package testutil
|
||||
|
||||
import (
|
||||
"platform/pkg/orm"
|
||||
q "platform/web/queries"
|
||||
"testing"
|
||||
|
||||
"github.com/DATA-DOG/go-sqlmock"
|
||||
"gorm.io/driver/postgres"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
// SetupDBTest 创建一个带有 sqlmock 的 GORM 数据库连接
|
||||
func SetupDBTest(t *testing.T) sqlmock.Sqlmock {
|
||||
|
||||
// 创建 sqlmock
|
||||
db, mock, err := sqlmock.New()
|
||||
if err != nil {
|
||||
t.Fatalf("创建sqlmock失败: %v", err)
|
||||
}
|
||||
|
||||
// 配置 gorm 连接
|
||||
gormDB, err := gorm.Open(postgres.New(postgres.Config{
|
||||
Conn: db,
|
||||
PreferSimpleProtocol: true, // 禁用 prepared statement 缓存
|
||||
}), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatalf("gorm 打开数据库连接失败: %v", err)
|
||||
}
|
||||
|
||||
q.SetDefault(gormDB)
|
||||
orm.DB = gormDB
|
||||
|
||||
// 使用 t.Cleanup 确保测试结束后关闭数据库连接
|
||||
t.Cleanup(func() {
|
||||
db.Close()
|
||||
})
|
||||
|
||||
return mock
|
||||
}
|
||||
Reference in New Issue
Block a user