faker
是一个用于生成随机测试数据的 Go 语言库。它能够帮助开发者快速生成模拟数据,用于测试、演示、样本数据生成等场景。
faker
支持一下类型数据:
int
,int8
,int16
,int32
&int64
[]int
,[]int8
,[]int16
,[]int32
&[]int64
bool
&[]bool
string
&[]string
float32
,float64
,[]float32
&[]float64
time.Time
&[]time.Time
- 嵌套结构
作者提供了丰富的例子以供参考:
- 使用结构体的标签:
- 自定义结构体的标签(定义你自己的faker数据):example_custom_faker_test.go
- 不使用结构体的标签:example_without_tag_test.go
- 单个假数据函数:example_single_fake_data_test.go
faker
在使用过程中也存在一些限制:
- 它不支持私有字段。确保你打算生成假数据的结构体字段是公开的,否则会触发panic。你可以在你的私有字段上使用标签skip
faker:"-"
来忽略字段。 - 它不支持
interface{}
数据类型。如果我们不知道其数据类型,我们怎么能生成任何东西呢? - 它不支持
map[interface{}]interface{}
,map[any_type]interface{}
和map[interface{}]any_type
数据类型。 - 自定义类型并未完全支持。然而,一些自定义类型已经得到支持:我们仍在研究如何正确地做到这一点。目前,如果你使用
faker
,最安全的做法是不使用任何自定义类型,以避免panic。 - 如果并且仅当使用 AddProvider() 扩展时,一些额外的自定义类型可以得到支持,请参见 示例
oneof
标签目前只支持string
,int
类型,以及float32
和float64
。更多的支持即将到来(例如,十六进制数字等)。请参见 示例 了解如何使用。
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: mengbin
blog: mengbin
Github: mengbin92
cnblogs: 恋水无意