Faker is a Go library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.
Faker is heavily inspired by PHP"s Faker
Faker requires Go >= 1.11
Start at https://play.golang.org/p/JpTagDGBaHK
Add this to your Go file
import "github.com/jaswdr/faker"
And run go get
or dep ensure
to get the package.
Use faker.New()
to create and initialize a faker generator, which can generate data by accessing properties named after the type of data you want.
import "github.com/jaswdr/faker"
func main() {
faker := faker.New()
faker.Person().Name()
// Lucy Cechtelar
faker.Address().Address()
// 426 Jordy Lodge
faker.Lorem().Text(100)
// Dolores sit sint laboriosam dolorem culpa et autem. Beatae nam sunt fugit
// et sit et mollitia sed.
// Fuga deserunt tempora facere magni omnis. Omnis quia temporibus laudantium
// sit minima sint.
}
Even if this example shows a method access, each call to faker.Name()
yields a different (random) result.
p := faker.Person()
for i:=0; i < 10; i++ {
fmt.Println(p.Name())
}
// Adaline Reichel
// Dr. Santa Prosacco DVM
// Noemy Vandervort V
// Lexi O"Conner
// Gracie Weber
// Roscoe Johns
// Emmett Lebsack
// Keegan Thiel
// Wellington Koelpin II
// Ms. Karley Kiehn V
You can also generate a profile image.
image := p.Image()
fmt.Println(image.Name())
// /tmp/profil-picture-img-1064677774.jfif
fmt.Printf("%+v", image)
// &{file:0xc0002e4300}
Generate fake data using Structs
type ExampleStruct struct {
SimpleStringField string
SimpleNumber int
SimpleBool bool
SomeFormatedString string `fake:"??? ###"`
SomeStringArray [5]string `fake:"????"`
}
example := ExampleStruct{}
f.Struct().Fill(&example)
fmt.Printf("%+v", example)
//{SimpleStringField:87576a01c2a547b2bbf9b7c736d1db40 SimpleNumber:9223372036854775807 SimpleBool:false SomeFormatedString:cxo 321 SomeStringArray:[effr swxp ldnj obcs nvlg]}
Generate random placeholder images using LoremFlickr
// get a *os.File pointing to a file that is a random image
image := f.LoremFlickr().Image(100, 100, []string{}, "", false)
fmt.Println(image.Name())
// /tmp/loremflickr-img-4101493944.jpg
Generate profile images using ThisPersonDoesNotExist
profileImage := f.ProfileImage().Image()
fmt.Println(profileImage.Name())
// /tmp/profil-picture-img-4022222298.jfif
See more formatters in docs
Have a question? Use the Discussions page.
Create a fork and get the code.
$ go get github.com/jaswdr/faker
Do your changes, add tests, run the tests.
$ go test
PASS
ok github.com/jaswdr/faker 0.010s
Push to your fork and send a new pull request from your fork to this repository.
Faker is released under the MIT Licence. See the bundled LICENSE file for details.