Du behöver ofta data för att testa din app med meningsfulla värden. Använd bara Gofakeit för att fejka det åt dig.

Pålitliga och realistiska testdata är avgörande för att säkerställa kvaliteten och funktionaliteten hos dina appar. Att generera falska data som efterliknar verkliga scenarier är en användbar färdighet för många former av testning.

Det finns inget stöd för att generera falska data i standardbiblioteket, men många paket finns i Gos bredare ekosystem. Ett populärt paket för falsk datagenerering är Gofakeit.

Komma igång med Gofakeit

Gofakeit är ett paket för att generera falska data i dina Go-program.

Gofakeit erbjuder omfattande funktioner, inklusive slumpmässig datagenerering över olika typer. Det ger också anpassningsbara alternativ för att följa specifika format, stöd för lokalisering och realistiska generering av tid och datum.

Kör det här kommandot i ditt projekts arbetskatalog, efter att du har initierat ett nytt Go-projekt, för att lägga till Gofakeit som ett tredjepartsberoende:

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

Efter att ha lagt till Gofakeit som ett beroende kan du importera paketet på följande sätt:

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

Sammantaget tillhandahåller Gofakeit det mesta av funktionaliteten i ett falskt datagenereringspaket.

Generera grundläggande falska data med Gofakeit

Gofakeit tillhandahåller funktionalitet för att generera olika typer av data, inklusive namn, e-postmeddelanden, telefoner, affärsfraser, etc.

Så här kan du generera grundläggande falsk data med 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)
}

De huvud funktionen genererar flera falska värden med Gofakeit och skriver ut dem till konsolen med hjälp av Println funktion från fmt-paket.

Gofakeit tillhandahåller struct-taggar för att generera falska data för olika fält. När du använder dessa struct-taggar kommer Gofakeit att initialisera sina fält med falska data.

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

Fälten i Person struct alla har falsk struct-taggar. I den huvud funktion, den person variabel är en instans av personstrukturen.

De gofakeit. Struktur metoden fyller i exporterade element av en struktur med slumpmässiga data baserat på värdet av falsk taggen för exporterade fält. De huvud funktionen skriver sedan ut struct-fälten till konsolen.

Genererar komplexa falska data

Du kan generera komplexa falska data med Gofakeit, inklusive slumpmässiga meningar, stycken och lorem ipsum med Mening, Paragraf, och LoremIpsumParagraph funktioner, respektive.

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

De generera RandomSentence funktion genererar en slumpmässig mening med Gofakeits Mening fungera. De genereraRandomParagraph funktionen genererar ett slumpmässigt stycke med Paragraf fungera.

De genereraLoremIpsum funktionen genererar ett slumpmässigt lorem ipsum-stycke med LoremIpsumParagraph fungera.

De huvud funktionen anropar funktionerna generRandomSentence, generateRandomParagraph och genereraLoremIpsum. Programmet skriver ut utdata från funktionen till konsolen.

Du kan generera falska data för att testa din databas

Gofakeit förenklar testning med dynamisk datagenerering för att säkerställa kompatibilitet med olika krav.

Du kan använda Gos inbyggda databas/sql-paket för att fylla din SQL-databas med falska data för testning. Detta kan hjälpa dig att testa fler avancerade fall och förbättra databassäkerheten.