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 and < 1.20 for 1.X and Go >= 1.20 for 2.X
Test it directly from your browser
Start at https://play.golang.org/p/JpTagDGBaHK
Installation
Add this to your Go file
import "github.com/jaswdr/faker/v2"
And run go get
or dep ensure
to get the package.
Basic Usage
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/v2"
func main() {
fake := faker.New()
fake.Person().Name()
// Lucy Cechtelar
fake.Address().Address()
// 426 Jordy Lodge
fake.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 fake.Name()
yields a different (random) result.
p := fake.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
Development
Create a fork and get the code.
$ go get github.com/jaswdr/faker/v2
Do your changes, add tests, run the tests.
$ go test
PASS
ok github.com/jaswdr/faker/v2 2.966s
Push to your fork and send a new pull request from your fork to this repository.
Versioning
Faker is maintained under the Semantic Versioning guidelines. Starting at 2.X
, we only support maintained versions of Go. Which according to Go's Release Policy means that we only support the two newer major versions.
License
Faker is released under the MIT Licence. See the bundled LICENSE file for details.
Maintainer
Created and maitained by Jonathan Schweder (@jaswdr) and many others