, (*1)
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., (*2)
Faker is heavily inspired by PHP"s Faker, (*3)
Faker requires Go >= 1.11 and < 1.20 for 1.X and Go >= 1.20 for 2.X, (*4)
, (*5)
Test it directly from your browser
Start at https://play.golang.org/p/JpTagDGBaHK, (*6)
Installation
Add this to your Go file, (*7)
import "github.com/jaswdr/faker/v2"
And run go get
or dep ensure
to get the package., (*8)
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., (*9)
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., (*10)
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., (*11)
image := p.Image()
fmt.Println(image.Name())
// /tmp/profil-picture-img-1064677774.jfif
fmt.Printf("%+v", image)
// &{file:0xc0002e4300}
Generate fake data using Structs, (*12)
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, (*13)
// 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, (*14)
profileImage := f.ProfileImage().Image()
fmt.Println(profileImage.Name())
// /tmp/profil-picture-img-4022222298.jfif
See more formatters in docs, (*15)
Development
Create a fork and get the code., (*16)
$ go get github.com/jaswdr/faker/v2
Do your changes, add tests, run the tests., (*17)
$ 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., (*18)
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., (*19)
License
Faker is released under the MIT Licence. See the bundled LICENSE file for details., (*20)
Maintainer
Created and maitained by Jonathan Schweder (@jaswdr) and many others, (*21)