Browse Source

feat: facotry 和 Faker

runningwater 10 months ago
parent
commit
3581cc510e
3 changed files with 28 additions and 0 deletions
  1. 25 0
      database/factories/user_factory.go
  2. 1 0
      go.mod
  3. 2 0
      go.sum

+ 25 - 0
database/factories/user_factory.go

@@ -0,0 +1,25 @@
+// Package factories 存放工厂方法
+package factories
+
+import (
+	"github.com/bxcodec/faker/v4"
+	"github.com/runningwater/gohub/app/models/user"
+)
+
+func MakeUsers(times int) []user.User {
+	var objs []user.User
+
+	// 设置唯一值
+	faker.SetGenerateUniqueValues(true)
+
+	for range times {
+		model := user.User{
+			Name:     faker.Username(),
+			Email:    faker.Email(),
+			Phone:    faker.Phonenumber(),
+			Password: faker.Password(),
+		}
+		objs = append(objs, model)
+	}
+	return objs
+}

+ 1 - 0
go.mod

@@ -8,6 +8,7 @@ require (
 	github.com/alibabacloud-go/tea v1.3.9
 	github.com/alibabacloud-go/tea-utils/v2 v2.0.7
 	github.com/aliyun/credentials-go v1.4.6
+	github.com/bxcodec/faker/v4 v4.0.0-beta.3
 	github.com/gertd/go-pluralize v0.2.1
 	github.com/gin-gonic/gin v1.10.1
 	github.com/golang-jwt/jwt/v5 v5.2.2

+ 2 - 0
go.sum

@@ -58,6 +58,8 @@ github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
 github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
 github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
 github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
+github.com/bxcodec/faker/v4 v4.0.0-beta.3 h1:gqYNBvN72QtzKkYohNDKQlm+pg+uwBDVMN28nWHS18k=
+github.com/bxcodec/faker/v4 v4.0.0-beta.3/go.mod h1:m6+Ch1Lj3fqW/unZmvkXIdxWS5+XQWPWxcbbQW2X+Ho=
 github.com/bytedance/sonic v1.13.3 h1:MS8gmaH16Gtirygw7jV91pDCN33NyMrPbN7qiYhEsF0=
 github.com/bytedance/sonic v1.13.3/go.mod h1:o68xyaF9u2gvVBuGHPlUVCy+ZfmNNO5ETf1+KgkJhz4=
 github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU=