You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
cloudreve/routers/main_test.go

48 lines
799 B

package routers
import (
"database/sql"
"testing"
"github.com/DATA-DOG/go-sqlmock"
model "github.com/cloudreve/Cloudreve/v3/models"
"github.com/gin-gonic/gin"
"github.com/jinzhu/gorm"
)
var mock sqlmock.Sqlmock
var memDB *gorm.DB
var mockDB *gorm.DB
// TestMain 初始化数据库Mock
func TestMain(m *testing.M) {
// 设置gin为测试模式
gin.SetMode(gin.TestMode)
// 初始化sqlmock
var db *sql.DB
var err error
db, mock, err = sqlmock.New()
if err != nil {
panic("An error was not expected when opening a stub database connection")
}
// 初始话内存数据库
model.Init()
memDB = model.DB
mockDB, _ = gorm.Open("mysql", db)
model.DB = memDB
defer db.Close()
m.Run()
}
func switchToMemDB() {
model.DB = memDB
}
func switchToMockDB() {
model.DB = mockDB
}