用于生成 Go 测试数据的生成器推荐
大家好,又见面了,我是 GitHub 精选君!
今天要给大家推荐一个 GitHub 开源项目 go-faker/faker,该项目在 GitHub 有超过 200 Star,用一句话介绍该项目就是:“Go (Golang) Fake Data Generator for Struct”,用于生成 Go 测试数据的生成器。以下是具体的功能演示:
faker 提供了生成伪数据的功能,这个库可以生成各种类型的伪数据,包括人名、地址、电话号码、电子邮件地址、银行账号等。这些数据可以用于测试、演示和开发等场景。
在使用 faker 库时,可以通过调用不同的函数来生成不同类型的伪数据,并可以通过设置配置参数来控制生成的数据的语言、地区、格式等。
以下是该项目 Star 趋势图(代表项目的活跃程度):
如何安装使用
- 使用Go的包管理工具(例如
go mod
或dep
)进行安装:go get github.com/go-faker/faker
- 或者手动下载源代码并编译安装:
git clone https://github.com/go-faker/faker.git cd faker go build go install
使用示例 DEMO
package main
import (
"fmt"
"github.com/go-faker/faker"
)
type SomeStructWithTags struct {
Latitude float32 `faker:"lat"`
Longitude float32 `faker:"long"`
RealAddress faker.RealAddress `faker:"real_address"`
CreditCardNumber string `faker:"cc_number"`
CreditCardType string `faker:"cc_type"`
Email string `faker:"email"`
DomainName string `faker:"domain_name"`
IPV4 string `faker:"ipv4"`
IPV6 string `faker:"ipv6"`
}
func main() {
a := SomeStructWithTags{}
err := faker.FakeData(&a)
if err != nil {
fmt.Println(err)
}
fmt.Printf("%+v", a)
}
运行结果:
{
Latitude: 81.12195
Longitude: -84.38158
RealAddress: {Address:107 Guaymas Place City:Davis State:CA PostalCode:95616 Coordinates:{Latitude:38.567048 Longitude:-121.746046}}
CreditCardType: American Express
CreditCardNumber: 373641309057568
Email: mJBJtbv@OSAaT.ru
DomainName: FWZcaRE.ru,
IPV4: 99.23.42.63
IPV6: 975c:fb2c:2133:fbdd:beda:282e:1e0a:ec7d
}
只需要在定义的 Struct 上增加对应的标签即可迅速的生成的 Fake 数据,目前支持超过 60 种标签,以下是部分示例。
更多项目详情请查看如下链接。
开源项目地址:https://github.com/go-faker/faker
开源项目作者:go-faker
以下是参与项目建设的所有成员:
关注我们,一起探索有意思的开源项目。
更多精彩请扫码关注如下公众号。
Written on January 29, 2023