Muitas vezes, você precisará de dados para testar seu aplicativo com valores significativos. Basta usar o Gofakeit para falsificá-lo para você.

Dados de teste confiáveis ​​e realistas são essenciais para garantir a qualidade e a funcionalidade de seus aplicativos. Gerar dados falsos que imitam cenários do mundo real é uma habilidade útil para muitas formas de teste.

Não há suporte para geração de dados falsos na biblioteca padrão, mas existem muitos pacotes no ecossistema mais amplo do Go. Um pacote popular para geração de dados falsos é o Gofakeit.

Introdução ao Gofakeit

Gofakeit é um pacote para gerar dados falsos em seus programas Go.

O Gofakeit oferece recursos abrangentes, incluindo geração de dados aleatórios em vários tipos. Ele também oferece opções personalizáveis ​​para adesão a formatos específicos, suporte para localização e visualização realista geração de hora e data.

Execute este comando no diretório de trabalho do seu projeto, depois de inicializar um novo projeto Go, para adicionar o Gofakeit como uma dependência de terceiros:

instagram viewer
go get github.com/brianvoe/gofakeit/v6

Depois de adicionar o Gofakeit como uma dependência, você pode importar o pacote da seguinte forma:

import (
"github.com/brianvoe/gofakeit/v6"
)

No geral, o Gofakeit fornece a maior parte da funcionalidade de um pacote de geração de dados falsos.

Gerando dados falsos básicos com Gofakeit

Gofakeit fornece funcionalidade para gerar diferentes tipos de dados, incluindo nomes, e-mails, telefones, frases comerciais, etc.

Veja como você pode gerar dados falsos básicos com o Gofakeit:

package main

import (
"fmt"
"github.com/brianvoe/gofakeit/v6"
)

funcmain() {
// Generate a fake name
name := gofakeit.Name()
fmt.Println("Name:", name)

// Generate a fake email address
email := gofakeit.Email()
fmt.Println("Email:", email)

// Generate a fake phone number
phone := gofakeit.Phone()
fmt.Println("Phone:", phone)

// Generate a fake company name
company := gofakeit.Company()
fmt.Println("Company:", company)

// Generate a fake credit card number
creditCard := gofakeit.CreditCardNumber()
fmt.Println("Credit Card:", creditCard)

// Generate a fake hacker phrase
hackerPhrase := gofakeit.HackerPhrase()
fmt.Println("Hacker Phrase:", hackerPhrase)

// Generate a fake job title
jobTitle := gofakeit.JobTitle()
fmt.Println("Job Title:", jobTitle)

// Generate a fake currency abbreviation
currency := gofakeit.CurrencyShort()
fmt.Println("Currency:", currency)
}

O principal A função gera vários valores falsos com Gofakeit e os imprime no console usando o Println função do pacote fmt.

Gofakeit fornece tags struct para gerar dados falsos para vários campos. Quando você usa essas tags struct, o Gofakeit inicializa seus campos com dados falsos.

import (
"fmt"
"time"

"github.com/brianvoe/gofakeit/v6"
)

type Person struct {
ID string`fake:"{uuid}"`
FirstName string`fake:"{firstname}"`
LastName string`fake:"{lastname}"`
Age int`fake:"{number: 18,60}"`
Email string`fake:"{email}"`
Address string`fake:"{address}"`
CreatedAt time.Time `fake:"{date}"`
}

funcmain() {
var person Person

gofakeit.Struct(&person)

fmt.Printf("ID: %s\\n", person.ID)
fmt.Printf("First Name: %s\\n", person.FirstName)
fmt.Printf("Last Name: %s\\n", person.LastName)
fmt.Printf("Age: %d\\n", person.Age)
fmt.Printf("Email: %s\\n", person.Email)
fmt.Printf("Address: %s\\n", person.Address)
fmt.Printf("Created At: %s\\n", person.CreatedAt)
}

Os campos do Pessoa estrutura todos tem falso tags de estrutura. No principal função, o pessoa variável é uma instância da estrutura Person.

O gofakeit. estrutura método preenche elementos exportados de uma estrutura com dados aleatórios com base no valor do falso tag dos campos exportados. O principal A função então imprime os campos struct no console.

Gerando dados falsos complexos

Você pode gerar dados falsos complexos com Gofakeit, incluindo frases aleatórias, parágrafos e lorem ipsum com o Frase, Parágrafo, e LoremIpsumParágrafo funções, respectivamente.

package main

import (
"fmt"

"github.com/brianvoe/gofakeit/v6"
)

funcgenerateRandomSentence()string {
// Generate a random sentence with 6 words
sentence := gofakeit.Sentence(6)
return sentence
}

funcgenerateRandomParagraph()string {
// Generate a random paragraph with 3 sentences, each having 4 to 8 words
paragraph := gofakeit.Paragraph(3, 4, 8, "/n")
return paragraph
}

funcgenerateLoremIpsum()string {
// Generate 2 paragraphs of lorem ipsum text, each having 3 to 5 sentences
loremIpsum := gofakeit.LoremIpsumParagraph(3, 5, 12, "\\n")
return loremIpsum
}

funcmain() {
// Set up the random seed for consistent results (optional)
gofakeit.Seed(0)

// Generate and print random sentence
fmt.Println("Random Sentence:")
fmt.Println(generateRandomSentence())

// Generate and print random paragraph
fmt.Println("\\nRandom Paragraph:")
fmt.Println(generateRandomParagraph())

// Generate and print lorem ipsum text
fmt.Println("\\nLorem Ipsum Text:")
fmt.Println(generateLoremIpsum())
}

O gerarRandomSentence função gera uma frase aleatória com Gofakeit's Frase função. O gerarRandomParagraph função gera um parágrafo aleatório com o Parágrafo função.

O gerarLoremIpsum A função gera um parágrafo lorem ipsum aleatório com o LoremIpsumParágrafo função.

O principal A função chama as funções generateRandomSentence, generateRandomParagraph e generateLoremIpsum. O programa imprime as saídas da função no console.

Você pode gerar dados falsos para testar seu banco de dados

O Gofakeit simplifica os testes com geração dinâmica de dados para garantir a compatibilidade com diversos requisitos.

Você pode usar o pacote database/sql integrado do Go para preencher seu banco de dados SQL com dados falsos para teste. Isso pode ajudá-lo a testar mais casos extremos e melhorar a segurança do banco de dados.