Skip to content

Commit

Permalink
modify example
Browse files Browse the repository at this point in the history
  • Loading branch information
junqiang.zhang committed May 9, 2022
1 parent 21292c0 commit e5009ef
Showing 1 changed file with 38 additions and 31 deletions.
69 changes: 38 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"github.com/sjqzhang/gmock"
"github.com/sjqzhang/gmock/mockdb"
"github.com/sjqzhang/gmock/mockdocker"
_ "gorm.io/driver/mysql"
gormv2 "gorm.io/gorm"
"io/ioutil"
"net/http"
Expand All @@ -37,17 +38,25 @@ func main() {
testMockRedis()
testMockHttpServer()
testMockDocker()
testDBUtil()

}

func testMockGORM() {
var db *gorm.DB
mockdb := gmock.NewMockGORM("example", func(gorm *mockdb.MockGORM) {
mockdb.DBType = "mysql"
mock := gmock.NewMockGORM("example", func(gorm *mockdb.MockGORM) {
db = gorm.GetGormDB()
})
mockdb.RegisterModels(&User{})
mockdb.ResetAndInit()
mockdb.ResetAndInit()
fmt.Println(mock.GetDSN())
//mock.RegisterModels(&User{})
mock.InitSchemas(`CREATE TABLE user (
id bigint(20) unsigned NOT NULL AUTO_INCREMENT,
age int(3) DEFAULT NULL,
name varchar(255) DEFAULT NULL COMMENT '名称',
PRIMARY KEY (id)
) ENGINE=InnoDB ;`)
mock.ResetAndInit()

var user User
err := db.Where("id=?", 1).Find(&user).Error
Expand All @@ -58,39 +67,34 @@ func testMockGORM() {
panic(fmt.Errorf("testMockGORM error"))
}


}

func testDBUtil() {
var db *gorm.DB
mockdb := gmock.NewMockGORM("example", func(gorm *mockdb.MockGORM) {
db = gorm.GetGormDB()
})
mockdb.RegisterModels(&User{})
mockdb.ResetAndInit()
mockdb.ResetAndInit()

util := gmock.NewDBUtil()

var user User

util.QueryObjectBySQL(db.DB(), &user, "select * from user")
if user.Id != 1 {
panic(fmt.Errorf("testDBUtil error"))
util.RunMySQLServer("test", 33333, false)
db, err := gorm.Open("mysql", "user:pass@tcp(127.0.0.1:33333)/test?charset=utf8mb4&parseTime=True&loc=Local")
if err != nil {
panic(err)
}

sqlText := util.ReadFile("./example/ddl.txt")
for _, s := range util.ParseSQLText(sqlText) {
fmt.Println(db.Exec(s))
}
fmt.Println(util.QueryListBySQL(db.DB(), "select * from project"))
}

func testMockGORMV2() {
mockdb.DBType = "mysql"
var db *gormv2.DB
mockdb := gmock.NewMockGORMV2("example", func(orm *mockdb.MockGORMV2) {
mock := gmock.NewMockGORMV2("example", func(orm *mockdb.MockGORMV2) {
db = orm.GetGormDB()
})
//注册模型
mockdb.RegisterModels(&User{})
mock.RegisterModels(&User{})
//初始化数据库及表数据
mockdb.ResetAndInit()
//db := mockdb.GetGormDB()
mock.ResetAndInit()
mock.ResetAndInit()
//db := mock.GetGormDB()
var user User
err := db.Where("id=?", 1).Find(&user).Error
if err != nil {
Expand All @@ -103,7 +107,7 @@ func testMockGORMV2() {
}

func testMockRedis() {
server := gmock.NewMockRedisServer()
server := gmock.NewMockRedisServer(63790)
client := server.GetRedisClient()
ctx := context.Background()
key := "aa"
Expand Down Expand Up @@ -142,19 +146,21 @@ func testMockHttpServer() {
if err != nil {
panic(err)
}
if string(data)!="hello baidu" {
if string(data) != "hello baidu" {
panic(fmt.Errorf("testMockHttpServer error"))
}
}

func testMockXORM() {
var engine *xorm.Engine
mockdb := gmock.NewMockXORM("example", func(orm *mockdb.MockXORM) {
mockdb.DBType = "mysql"
mock := gmock.NewMockXORM("example", func(orm *mockdb.MockXORM) {
engine = orm.GetXORMEngine()
})
mockdb.RegisterModels(&User{})
mockdb.ResetAndInit()
db := mockdb.GetXORMEngine()
mock.RegisterModels(&User{})

mock.ResetAndInit()
db := mock.GetXORMEngine()
var user User
_, err := db.Where("id=?", 1).Get(&user)
if err != nil {
Expand All @@ -169,7 +175,7 @@ func testMockDocker() {
mock := mockdocker.NewMockDockerService()
defer mock.Destroy()
err := mock.InitContainerWithCmd(func(cmd *string) {
// 注意:容器必须后台运行,否则会挂起,程序不会继续执行
// 注意:容器必须后台运行,否则会挂起,程序不会继续执行,所以要保证你的容器后台运行不退出
*cmd = "docker run --name some-mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7"
})
fmt.Println(err)
Expand All @@ -179,4 +185,5 @@ func testMockDocker() {
fmt.Println("mysql start success")

}

```

0 comments on commit e5009ef

Please sign in to comment.