63/100 Dias de Golang - Gerando dados com Faker
Table of Contents
#
Gerando dados com Faker
Para não testarmos os dados sempre com o John Doe, temos a lib Faker ela permite gerar dados aleatórios para várias situações: nomes, endereços, números, textos e vários outros dados. Podemos usar isso em testes automatizados, mocks, geração de dados para popular um banco, …
Para instalar a lib:
go get -u github.com/go-faker/faker/v4
Vamos criar um script que define uma struct de User e vamos gerar dados fake para esse user. Veja que usamos o padrão das struct tags para definir as condições para o Faker
package main
import (
"fmt"
"github.com/go-faker/faker/v4"
)
type User struct {
ID int `faker:"boundary_start=1, boundary_end=1000"`
FirstName string `faker:"first_name"`
LastName string `faker:"last_name"`
Email string `faker:"email"`
Age int `faker:"boundary_start=18, boundary_end=99"`
}
func main() {
user := User{}
faker.FakeData(&user)
fmt.Printf("%+v\n", user)
}
Veja a saída desse script:
{ID:203 FirstName:Taurean LastName:Keeling Email:dVFFsSR@KDitxdJ.com Age:89}
Uma coisa legal é fazer dados fake para testes.
func TestCreateUser(t *testing.T) {
user := User{}
faker.FakeData(&user)
if user.ID == 0 {
t.Error("Expected ID to be non-zero")
}
if user.Email == "" {
t.Error("Expected Email to be populated")
}
}