Skip to content

Commit 2a2f658

Browse files
committed
refactor(mysql): 修改测试用例
1 parent ca40a6b commit 2a2f658

6 files changed

+137
-474
lines changed

contrib/drivers/mysql/mysql_z_unit_feature_with_all_advanced_test.go

Lines changed: 67 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import (
1212
"time"
1313

1414
"github.com/gogf/gf/v2/database/gdb"
15-
"github.com/gogf/gf/v2/frame/g"
1615
"github.com/gogf/gf/v2/test/gtest"
1716
"github.com/gogf/gf/v2/util/gmeta"
1817
)
@@ -147,11 +146,15 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
147146
defer db.SetDebug(false)
148147
fmt.Println("\n========== Scenario 1: 极小数据集(1条)==========")
149148

150-
_, err := db.Model(tableUser).Data(g.Map{"id": 1, "name": "user_1"}).Insert()
149+
user1 := User{Id: 1, Name: "user_1"}
150+
userDetail1 := UserDetail{Uid: 1, Address: "address_1"}
151+
userScore1 := UserScores{Id: 1, Uid: 1, Score: 100}
152+
153+
_, err := db.Model(tableUser).Data(user1).Insert()
151154
t.AssertNil(err)
152-
_, err = db.Model(tableUserDetail).Data(g.Map{"uid": 1, "address": "address_1"}).Insert()
155+
_, err = db.Model(tableUserDetail).Data(userDetail1).Insert()
153156
t.AssertNil(err)
154-
_, err = db.Model(tableUserScores).Data(g.Map{"id": 1, "uid": 1, "score": 100}).Insert()
157+
_, err = db.Model(tableUserScores).Data(userScore1).Insert()
155158
t.AssertNil(err)
156159

157160
var users []*User
@@ -177,12 +180,11 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
177180
defer db.SetDebug(false)
178181
fmt.Println("\n========== Scenario 2: BatchThreshold 精确边界 ==========")
179182

180-
// 准备10条数据
181-
usersData := g.List{}
182-
detailsData := g.List{}
183-
for i := 1; i <= 10; i++ {
184-
usersData = append(usersData, g.Map{"id": i, "name": fmt.Sprintf("user_%d", i)})
185-
detailsData = append(detailsData, g.Map{"uid": i, "address": fmt.Sprintf("address_%d", i)})
183+
usersData := make([]*User, 10)
184+
detailsData := make([]*UserDetail, 10)
185+
for i := 0; i < 10; i++ {
186+
usersData[i] = &User{Id: i + 1, Name: fmt.Sprintf("user_%d", i+1)}
187+
detailsData[i] = &UserDetail{Uid: i + 1, Address: fmt.Sprintf("address_%d", i+1)}
186188
}
187189
_, err := db.Model(tableUser).Data(usersData).Insert()
188190
t.AssertNil(err)
@@ -227,28 +229,30 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
227229
db.SetDebug(true)
228230
defer db.SetDebug(false)
229231
// 20用户 * 5scores * 3details = 300 details
230-
usersData := g.List{}
231-
for i := 1; i <= 20; i++ {
232-
usersData = append(usersData, g.Map{"id": i, "name": fmt.Sprintf("user_%d", i)})
232+
usersData := make([]*User, 20)
233+
for i := 0; i < 20; i++ {
234+
usersData[i] = &User{Id: i + 1, Name: fmt.Sprintf("user_%d", i+1)}
233235
}
234236
_, err := db.Model(tableUser).Data(usersData).Insert()
235237
t.AssertNil(err)
236238

237-
scoresData := g.List{}
239+
scoresData := make([]*UserScores, 100) // 20*5=100
238240
scoreId := 1
239-
for i := 1; i <= 20; i++ {
240-
for j := 1; j <= 5; j++ {
241-
scoresData = append(scoresData, g.Map{"id": scoreId, "uid": i, "score": j * 10})
241+
for i := 0; i < 20; i++ {
242+
for j := 0; j < 5; j++ {
243+
scoresData[scoreId-1] = &UserScores{Id: scoreId, Uid: i + 1, Score: (j + 1) * 10}
242244
scoreId++
243245
}
244246
}
245247
_, err = db.Model(tableUserScores).Data(scoresData).Insert()
246248
t.AssertNil(err)
247249

248-
detailsData := g.List{}
250+
detailsData := make([]*UserScoreDetails, 300) // 100*3=300
251+
detailIdx := 0
249252
for i := 1; i <= 100; i++ {
250-
for j := 1; j <= 3; j++ {
251-
detailsData = append(detailsData, g.Map{"score_id": i, "detail_info": fmt.Sprintf("detail_%d_%d", i, j)})
253+
for j := 0; j < 3; j++ {
254+
detailsData[detailIdx] = &UserScoreDetails{ScoreId: i, DetailInfo: fmt.Sprintf("detail_%d_%d", i, j+1)}
255+
detailIdx++
252256
}
253257
}
254258
_, err = db.Model(tableUserScoreDetails).Data(detailsData).Insert()
@@ -285,7 +289,9 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
285289
fmt.Println("\n========== Scenario 4: 空关联数据 ==========")
286290
db.SetDebug(true)
287291
defer db.SetDebug(false)
288-
_, err := db.Model(tableUser).Data(g.Map{"id": 100, "name": "user_empty"}).Insert()
292+
293+
userEmpty := User{Id: 100, Name: "user_empty"}
294+
_, err := db.Model(tableUser).Data(userEmpty).Insert()
289295
t.AssertNil(err)
290296

291297
var users []*User
@@ -308,39 +314,41 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
308314
db.SetDebug(true)
309315
defer db.SetDebug(false)
310316
// 5用户 * 2scores * 2details * 2comments
311-
usersData := g.List{}
312-
for i := 1; i <= 5; i++ {
313-
usersData = append(usersData, g.Map{"id": i, "name": fmt.Sprintf("user_%d", i)})
317+
usersData := make([]*User, 5)
318+
for i := 0; i < 5; i++ {
319+
usersData[i] = &User{Id: i + 1, Name: fmt.Sprintf("user_%d", i+1)}
314320
}
315321
_, err := db.Model(tableUser).Data(usersData).Insert()
316322
t.AssertNil(err)
317323

318-
scoresData := g.List{}
324+
scoresData := make([]*UserScores, 10) // 5*2=10
319325
scoreId := 1
320-
for i := 1; i <= 5; i++ {
321-
for j := 1; j <= 2; j++ {
322-
scoresData = append(scoresData, g.Map{"id": scoreId, "uid": i, "score": j * 10})
326+
for i := 0; i < 5; i++ {
327+
for j := 0; j < 2; j++ {
328+
scoresData[scoreId-1] = &UserScores{Id: scoreId, Uid: i + 1, Score: (j + 1) * 10}
323329
scoreId++
324330
}
325331
}
326332
_, err = db.Model(tableUserScores).Data(scoresData).Insert()
327333
t.AssertNil(err)
328334

329-
detailsData := g.List{}
335+
detailsData := make([]*UserScoreDetails, 20) // 10*2=20
330336
detailId := 1
331-
for i := 1; i <= 10; i++ {
332-
for j := 1; j <= 2; j++ {
333-
detailsData = append(detailsData, g.Map{"id": detailId, "score_id": i, "detail_info": fmt.Sprintf("detail_%d_%d", i, j)})
337+
for i := 0; i < 10; i++ {
338+
for j := 0; j < 2; j++ {
339+
detailsData[detailId-1] = &UserScoreDetails{Id: detailId, ScoreId: i + 1, DetailInfo: fmt.Sprintf("detail_%d_%d", i+1, j+1)}
334340
detailId++
335341
}
336342
}
337343
_, err = db.Model(tableUserScoreDetails).Data(detailsData).Insert()
338344
t.AssertNil(err)
339345

340-
commentsData := g.List{}
341-
for i := 1; i <= 20; i++ {
342-
for j := 1; j <= 2; j++ {
343-
commentsData = append(commentsData, g.Map{"detail_id": i, "comment": fmt.Sprintf("comment_%d_%d", i, j)})
346+
commentsData := make([]*ScoreComments, 40) // 20*2=40
347+
commentId := 1
348+
for i := 0; i < 20; i++ {
349+
for j := 0; j < 2; j++ {
350+
commentsData[commentId-1] = &ScoreComments{DetailId: i + 1, Comment: fmt.Sprintf("comment_%d_%d", i+1, j+1)}
351+
commentId++
344352
}
345353
}
346354
_, err = db.Model(tableScoreComments).Data(commentsData).Insert()
@@ -383,30 +391,34 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
383391
detailPerScore := 3
384392

385393
fmt.Println(" → 插入1000个用户...")
386-
usersData := g.List{}
387-
for i := 1; i <= userCount; i++ {
388-
usersData = append(usersData, g.Map{"id": i, "name": fmt.Sprintf("user_%d", i)})
394+
usersData := make([]*User, userCount)
395+
for i := 0; i < userCount; i++ {
396+
usersData[i] = &User{Id: i + 1, Name: fmt.Sprintf("user_%d", i+1)}
389397
}
390398
_, err := db.Model(tableUser).Data(usersData).Insert()
391399
t.AssertNil(err)
392400

393401
fmt.Println(" → 插入5000个scores...")
394-
scoresData := g.List{}
402+
totalScores := userCount * scorePerUser
403+
scoresData := make([]*UserScores, totalScores)
395404
scoreId := 1
396-
for i := 1; i <= userCount; i++ {
397-
for j := 1; j <= scorePerUser; j++ {
398-
scoresData = append(scoresData, g.Map{"id": scoreId, "uid": i, "score": j * 10})
405+
for i := 0; i < userCount; i++ {
406+
for j := 0; j < scorePerUser; j++ {
407+
scoresData[scoreId-1] = &UserScores{Id: scoreId, Uid: i + 1, Score: (j + 1) * 10}
399408
scoreId++
400409
}
401410
}
402411
_, err = db.Model(tableUserScores).Data(scoresData).Batch(1000).Insert()
403412
t.AssertNil(err)
404413

405414
fmt.Println(" → 插入15000个details...")
406-
detailsData := g.List{}
415+
totalDetails := userCount * scorePerUser * detailPerScore
416+
detailsData := make([]*UserScoreDetails, totalDetails)
417+
detailIdx := 0
407418
for i := 1; i <= userCount*scorePerUser; i++ {
408-
for j := 1; j <= detailPerScore; j++ {
409-
detailsData = append(detailsData, g.Map{"score_id": i, "detail_info": fmt.Sprintf("detail_%d_%d", i, j)})
419+
for j := 0; j < detailPerScore; j++ {
420+
detailsData[detailIdx] = &UserScoreDetails{ScoreId: i, DetailInfo: fmt.Sprintf("detail_%d_%d", i, j+1)}
421+
detailIdx++
410422
}
411423
}
412424
_, err = db.Model(tableUserScoreDetails).Data(detailsData).Batch(1000).Insert()
@@ -443,17 +455,19 @@ func Test_WithAll_AdvancedScenarios(t *testing.T) {
443455
fmt.Println("\n========== Scenario 7: 全局配置+层级覆盖 ==========")
444456
db.SetDebug(true)
445457
defer db.SetDebug(false)
446-
usersData := g.List{}
447-
for i := 1; i <= 10; i++ {
448-
usersData = append(usersData, g.Map{"id": i, "name": fmt.Sprintf("user_%d", i)})
458+
usersData := make([]*User, 10)
459+
for i := 0; i < 10; i++ {
460+
usersData[i] = &User{Id: i + 1, Name: fmt.Sprintf("user_%d", i+1)}
449461
}
450462
_, err := db.Model(tableUser).Data(usersData).Insert()
451463
t.AssertNil(err)
452464

453-
scoresData := g.List{}
454-
for i := 1; i <= 10; i++ {
455-
for j := 1; j <= 3; j++ {
456-
scoresData = append(scoresData, g.Map{"uid": i, "score": j * 10})
465+
scoresData := make([]*UserScores, 30) // 10*3=30
466+
scoreIdx := 0
467+
for i := 0; i < 10; i++ {
468+
for j := 0; j < 3; j++ {
469+
scoresData[scoreIdx] = &UserScores{Uid: i + 1, Score: (j + 1) * 10}
470+
scoreIdx++
457471
}
458472
}
459473
_, err = db.Model(tableUserScores).Data(scoresData).Insert()

contrib/drivers/mysql/mysql_z_unit_feature_with_all_bench_comparison_test.go

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
// Copyright GoFrame Author(https://goframe.org). All Rights Reserved.
2-
//
3-
// This Source Code Form is subject to the terms of the MIT License.
4-
// If a copy of the MIT was not distributed with this file,
5-
// You can obtain one at https://github.com/gogf/gf.
6-
71
package mysql_test
82

93
import (
@@ -12,7 +6,6 @@ import (
126
"time"
137

148
"github.com/gogf/gf/v2/database/gdb"
15-
"github.com/gogf/gf/v2/frame/g"
169
"github.com/gogf/gf/v2/test/gtest"
1710
"github.com/gogf/gf/v2/util/gmeta"
1811
)
@@ -112,43 +105,49 @@ func Test_WithAll_PerformanceComparison(t *testing.T) {
112105
scoreDetailPerScore := 10
113106

114107
// Batch insert users
115-
usersData := g.List{}
116-
for i := 1; i <= userCount; i++ {
117-
usersData = append(usersData, g.Map{"id": i, "name": fmt.Sprintf("name_%d", i)})
108+
usersData := make([]*User, userCount)
109+
for i := 0; i < userCount; i++ {
110+
usersData[i] = &User{Id: i + 1, Name: fmt.Sprintf("name_%d", i+1)}
118111
}
119112
_, err = db.Model(tableUser).Data(usersData).Insert()
120113
gtest.AssertNil(err)
121114

122115
// Batch insert details
123-
detailsData := g.List{}
116+
detailsData := make([]*UserDetail, userCount*detailPerUser)
117+
idx := 0
124118
for i := 1; i <= userCount; i++ {
125119
for j := 1; j <= detailPerUser; j++ {
126-
detailsData = append(detailsData, g.Map{"uid": i, "address": fmt.Sprintf("address_%d_%d", i, j)})
120+
detailsData[idx] = &UserDetail{Uid: i, Address: fmt.Sprintf("address_%d_%d", i, j)}
121+
idx++
127122
}
128123
}
129124
_, err = db.Model(tableUserDetail).Data(detailsData).Insert()
130125
gtest.AssertNil(err)
131126

132127
// Batch insert scores
133-
scoresData := g.List{}
128+
scoresData := make([]*UserScores, userCount*scorePerUser)
129+
scoreIdx := 0
134130
for i := 1; i <= userCount; i++ {
135131
for j := 1; j <= scorePerUser; j++ {
136-
scoresData = append(scoresData, g.Map{"uid": i, "score": j})
132+
scoresData[scoreIdx] = &UserScores{Uid: i, Score: j}
133+
scoreIdx++
137134
}
138135
}
139136
_, err = db.Model(tableUserScores).Data(scoresData).Insert()
140137
gtest.AssertNil(err)
141138

142139
// Batch insert score details
143-
scoreDetailsData := g.List{}
140+
scoreDetailsData := make([]*UserScoreDetails, userCount*scorePerUser*scoreDetailPerScore)
141+
scoreDetailIdx := 0
144142
for i := 1; i <= userCount; i++ {
145143
for j := 1; j <= scorePerUser; j++ {
146144
actualScoreId := (i-1)*scorePerUser + j
147145
for k := 1; k <= scoreDetailPerScore; k++ {
148-
scoreDetailsData = append(scoreDetailsData, g.Map{
149-
"score_id": actualScoreId,
150-
"detail_info": fmt.Sprintf("detail_info_%d_%d_%d", i, j, k),
151-
})
146+
scoreDetailsData[scoreDetailIdx] = &UserScoreDetails{
147+
ScoreId: actualScoreId,
148+
DetailInfo: fmt.Sprintf("detail_info_%d_%d_%d", i, j, k),
149+
}
150+
scoreDetailIdx++
152151
}
153152
}
154153
}

0 commit comments

Comments
 (0)