Golang – 使用 GoFakeIt 生成假数据

2024-08-24 0 572

介绍

软件开发中,测试对于确保代码按预期工作至关重要。然而,由于隐私问题、数据可用性以及收集和清理数据所需的巨大努力,获取用于测试目的的真实数据可能具有挑战性。这就是生成虚假数据变得无价的地方。在 go 编程语言中,最流行的用于生成假数据的库之一是 gofakeit。

什么是 gofakeit?

gofakeit 是一个强大的库,允许开发人员生成各种随机数据用于测试目的。它支持创建真实的姓名、地址、电子邮件地址、电话号码、日期和许多其他类型信息的虚假数据。通过使用 gofakeit,开发人员可以使用虚拟数据快速填充他们的测试环境,从而使他们的测试过程更加高效和有效。

安装 gofakeit

要开始使用gofakeit,您首先需要安装该库。您可以使用 go get 命令来执行此操作:

1

go get -u Github.com/brianvoe/gofakeit/v6

生成基本的假数据

使用 gofakeit 生成基本的假数据非常简单。以下是一些例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

package main

import (

    "fmt"

    "github.com/brianvoe/gofakeit/v6"

)

func main() {

    // seed the random generator

    gofakeit.seed(0)

    // generate a fake name

    name := gofakeit.name()

    fmt.println("name:", name)

    // generate a fake email address

    email := gofakeit.email()

    fmt.println("email:", email)

    // generate a fake phone number

    phone := gofakeit.phone()

    fmt.println("phone:", phone)

    // generate a fake address

    address := gofakeit.address()

    fmt.println("address:", address.address)

}

输出 –

Golang – 使用 GoFakeIt 生成假数据

此脚本为随机生成器播种以确保可重复性,然后生成假姓名、电子邮件电话号码和地址。除非使用相同的种子值,否则每次运行程序时的输出都会不同。

立即学习“go语言免费学习笔记(深入)”;

定制假数据

gofakeit 还允许对生成的数据进行更精细的控制。您可以指定参数来根据您的需要定制数据。例如:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

package main

import (

    "fmt"

    "github.com/brianvoe/gofakeit/v6"

)

func main() {

    // seed the random generator

    gofakeit.seed(0)

    // generate a fake person with specific attributes

    person := gofakeit.person()

    fmt.println("first name:", person.firstname)

    fmt.println("last name:", person.lastname)

    fmt.println("email:", person.contact.email)

    fmt.println("phone:", person.contact.phone)

    fmt.println("ssn:", person.ssn)

    // generate a fake credit card

    creditcard := gofakeit.creditcard()

    fmt.println("credit card number:", creditcard.number)

    fmt.println("credit card expiration:", creditcard.exp)

    fmt.println("credit card cvv:", creditcard.cvv)

}

输出 –

Golang – 使用 GoFakeIt 生成假数据

使用结构标签生成假数据

gofakeit 的强大功能之一是它能够使用结构标签将假数据直接生成到结构字段中。方法如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

package main

import (

    "fmt"

    "github.com/brianvoe/gofakeit/v6"

)

type user struct {

    firstname string `fake:"{firstname}"`

    lastname  string `fake:"{lastname}"`

    email     string `fake:"{email}"`

    phone     string `fake:"{phone}"`

    birthdate string `fake:"{date}"`

}

func main() {

    // seed the random generator

    gofakeit.seed(0)

    var user user

    gofakeit.struct(&user)

    fmt.printf("user: %+v\n", user)

    users := []user{}

    gofakeit.slice(&users)

    fmt.printf("lenght: %d ,users: %+v\n", len(users), users)

}

输出 –

Golang – 使用 GoFakeIt 生成假数据

在此示例中,用户结构体使用结构体标签填充了虚假数据。此功能对于快速生成大量结构化数据特别有用。

生成假 sql 数据

生成假 sql 数据对于测试数据库相关代码也非常有帮助。 gofakeit 可用于创建填充虚假数据的 sql 插入语句。方法如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

package main

import (

    "fmt"

    "github.com/brianvoe/gofakeit/v6"

)

func main() {

    // seed the random generator

    gofakeit.seed(0)

    sqloptions := &gofakeit.sqloptions{

        Table: "people", // table name

        count: 2, // count of sql records

        fields: []gofakeit.field{

            {name: "id", function: "autoincrement"},

            {name: "first_name", function: "firstname"},

            {name: "price", function: "price"},

            {name: "age", function: "number", params: gofakeit.mapparams{"min": {"1"}, "max": {"99"}}},

            {name: "created_at", function: "date", params: gofakeit.mapparams{"fORMat": {"2006-01-02 15:04:05"}}},

        },

    }

    sqldata, err := gofakeit.sql(sqloptions)

    fmt.println("err - ", err)

    fmt.println(sqldata)

}

输出-

Golang – 使用 GoFakeIt 生成假数据

播种随机性

默认情况下,每次调用都会生成不可预测的数据。

要生成可重复的数据,请使用数字作为种子。使用播种数据将是可重复的。

1

2

3

4

5

gofakeit.Seed(1234) // any int64 number

// Repeatable results now

name1 := gofakeit.Name()

name2 := gofakeit.Name()

结论

生成假数据是软件开发测试的重要组成部分。 gofakeit 提供了一种强大而灵活的方法来在 go 中创建真实的假数据。无论您需要简单的随机字符串还是复杂的数据结构,gofakeit 都可以帮助您高效地填充测试环境。通过利用这个库,您可以增强您的测试过程,使其更加健壮和可靠。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

免责声明
1. 本站所有资源来源于用户上传和网络等,如有侵权请邮件联系本站整改team@lcwl.fun!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系本站工作人员处理!
6. 本站资源售价或VIP只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 因人力时间成本问题,部分源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
9.本站所有源码资源都是经过本站工作人员人工亲测可搭建的,保证每个源码都可以正常搭建,但不保证源码内功能都完全可用,源码属于可复制的产品,无任何理由退款!

网站搭建学习网 Go Golang – 使用 GoFakeIt 生成假数据 https://www.xuezuoweb.com/14919.html

常见问题
  • 本站所有的源码都是经过平台人工部署搭建测试过可用的
查看详情
  • 购买源码资源时购买了带主机的套餐是指可以享受源码和所选套餐型号的主机两个产品,在本站套餐里开通主机可享优惠,最高免费使用主机
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

Fa快捷助手
手机编程软件开发

在手机上用手点一点就能轻松做软件

去做软件
链未云主机
免备案香港云主机

开通主机就送域名的免备案香港云主机

去使用
链未云服务器
免备案香港云服务器

支持售后、超低价、稳定的免备案香港云服务器

去使用