文档
faker
结构体数据伪造生成器
Faker 将根据你的结构体生成伪造数据。
目录
支持
开始使用
下载
go get -u github.com/go-faker/faker/v4
示例
- 使用结构体标签:
- 自定义结构体标签(定义你自己的faker数据): example_custom_faker_test.go
- 不使用结构体标签: example_without_tag_test.go
- 单一伪造数据函数: example_single_fake_data_test.go
演示
基准测试
生成伪造数据的基准测试
不使用标签
BenchmarkFakerDataNOTTagged-4 500000 3049 ns/op 488 B/op 20 allocs/op
使用标签
BenchmarkFakerDataTagged-4 100000 17470 ns/op 380 B/op 26 allocs/op
必知事项
结构体字段必须是公开的。
仅支持以下类型:
int
,int8
,int16
,int32
和int64
[]int
,[]int8
,[]int16
,[]int32
和[]int64
bool
和[]bool
string
和[]string
float32
,float64
,[]float32
和[]float64
time.Time
和[]time.Time
- 嵌套结构体字段
限制
遗憾的是,这个库有一些限制
- 不支持私有字段。确保你打算生成伪造数据的结构体字段是公开的,否则会触发panic。你可以使用标签
faker:"-"
来忽略私有字段。 - 不支持
interface{}
数据类型。我们如何在不知道其数据类型的情况下生成任何内容? - 不支持
map[interface{}]interface{}
,map[any_type]interface{}
和map[interface{}]any_type
数据类型。再次强调,我们无法为未知数据类型生成值。 - 自定义类型不完全支持。但是一些自定义类型已经得到支持:我们仍在研究如何正确地做到这一点。目前,如果你使用
faker
,最安全的做法是不使用任何自定义类型,以避免panic。 - 只有在通过AddProvider()扩展的情况下,才能支持一些额外的自定义类型,请参见示例
oneof
标签目前只支持string
、int
类型以及float32
和float64
。更多支持即将推出(例如十六进制数等)。使用方法请参见示例。
贡献
要为这个项目做出贡献,你可以提交PR或提出issue。