Spesso avrai bisogno di dati per testare la tua app con valori significativi. Usa Gofakeit per fingere per te.

Dati di test affidabili e realistici sono fondamentali per garantire la qualità e la funzionalità delle tue app. La generazione di dati falsi che imitano scenari del mondo reale è un'abilità utile per molte forme di test.

Non c'è supporto per la generazione di dati falsi nella libreria standard, ma esistono molti pacchetti nell'ecosistema più ampio di Go. Un pacchetto popolare per la generazione di dati falsi è Gofakeit.

Iniziare con Gofakeit

Gofakeit è un pacchetto per generare dati falsi nei tuoi programmi Go.

Gofakeit offre funzionalità estese, inclusa la generazione di dati casuali di vari tipi. Fornisce inoltre opzioni personalizzabili per l'aderenza a formati specifici, supporto per la localizzazione e realismo generazione di data e ora.

Esegui questo comando nella directory di lavoro del tuo progetto, dopo aver inizializzato un nuovo progetto Go, per aggiungere Gofakeit come dipendenza di terze parti:

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

Dopo aver aggiunto Gofakeit come dipendenza, puoi importare il pacchetto in questo modo:

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

Nel complesso, Gofakeit fornisce la maggior parte delle funzionalità di un pacchetto di generazione di dati fasulli.

Generazione di dati falsi di base con Gofakeit

Gofakeit fornisce funzionalità per la generazione di diversi tipi di dati, inclusi nomi, e-mail, telefoni, frasi aziendali, ecc.

Ecco come puoi generare dati falsi di base con 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)
}

IL principale La funzione genera diversi valori falsi con Gofakeit e li stampa sulla console utilizzando l'estensione Stampaln funzione dal pacchetto FM.

Gofakeit fornisce tag struct per generare dati falsi per vari campi. Quando usi questi tag struct, Gofakeit inizializzerà i loro campi con dati falsi.

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)
}

I campi del Persona struct hanno tutti impostore tag struct. Nel principale funzione, il persona variabile è un'istanza della struttura Person.

IL gofakeit. Struttura Il metodo riempie gli elementi esportati di una struttura con dati casuali basati sul valore di impostore tag dei campi esportati. IL principale la funzione quindi stampa i campi struct nella console.

Generazione di dati falsi complessi

Puoi generare dati falsi complessi con Gofakeit, incluse frasi casuali, paragrafi e lorem ipsum con il Frase, Paragrafo, E LoremIpsumParagrafo funzioni, rispettivamente.

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())
}

IL generateRandomSentence La funzione genera una frase casuale con quella di Gofakeit Frase funzione. IL generateRandomParagraph La funzione genera un paragrafo casuale con il Paragrafo funzione.

IL generateLoremIpsum La funzione genera un paragrafo lorem ipsum casuale con l'estensione LoremIpsumParagrafo funzione.

IL principale La funzione chiama le funzioni generateRandomSentence, generateRandomParagraph e generateLoremIpsum. Il programma stampa gli output della funzione sulla console.

Puoi generare dati falsi per testare il tuo database

Gofakeit semplifica i test con la generazione dinamica dei dati per garantire la compatibilità con diversi requisiti.

Puoi utilizzare il pacchetto database/sql integrato di Go per popolare il tuo database SQL con dati falsi per i test. Questo può aiutarti a testare più casi limite e migliorare la sicurezza del database.