Du skal ofte bruge data for at teste din app med meningsfulde værdier. Bare brug Gofakeit til at forfalske det for dig.

Pålidelige og realistiske testdata er afgørende for at sikre kvaliteten og funktionaliteten af ​​dine apps. Generering af falske data, der efterligner scenarier i den virkelige verden, er en nyttig færdighed til mange former for test.

Der er ingen støtte til at generere falske data i standardbiblioteket, men mange pakker findes i Go's bredere økosystem. En populær pakke til generering af falske data er Gofakeit.

Kom godt i gang med Gofakeit

Gofakeit er en pakke til at generere falske data i dine Go-programmer.

Gofakeit tilbyder omfattende funktioner, herunder tilfældig datagenerering på tværs af forskellige typer. Det giver også tilpasningsmuligheder for overholdelse af specifikke formater, understøttelse af lokalisering og realistisk tids- og datogenerering.

Kør denne kommando i dit projekts arbejdsmappe, efter du har initialiseret et nyt Go-projekt, for at tilføje Gofakeit som en tredjepartsafhængighed:

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

Efter at have tilføjet Gofakeit som en afhængighed, kan du importere pakken på følgende måde:

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

Samlet set leverer Gofakeit det meste af funktionaliteten i en falsk datagenereringspakke.

Generering af grundlæggende falske data med Gofakeit

Gofakeit giver funktionalitet til at generere forskellige slags data, herunder navne, e-mails, telefoner, forretningssætninger osv.

Sådan kan du generere grundlæggende falske 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)
}

Det vigtigste funktionen genererer flere falske værdier med Gofakeit og udskriver dem til konsollen ved hjælp af Udskrivln funktion fra fmt pakke.

Gofakeit leverer struct-tags til generering af falske data for forskellige felter. Når du bruger disse struct-tags, vil Gofakeit initialisere deres felter med falske 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)
}

Markerne af Person struct alle har falsk struct tags. I den vigtigste funktion, den person variabel er en forekomst af personstrukturen.

Det gofakeit. Struktur metode udfylder eksporterede elementer af en struktur med tilfældige data baseret på værdien af falsk tag af eksporterede felter. Det vigtigste funktionen udskriver derefter struct-felterne til konsollen.

Generering af komplekse falske data

Du kan generere komplekse falske data med Gofakeit, herunder tilfældige sætninger, afsnit og lorem ipsum med Dømme, Afsnit, og LoremIpsumParagraph funktioner, hhv.

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

Det generereRandomSentence funktion genererer en tilfældig sætning med Gofakeits Dømme fungere. Det generereRandomParagraph funktionen genererer et tilfældigt afsnit med Afsnit fungere.

Det generere LoremIpsum funktionen genererer et tilfældigt lorem ipsum afsnit med LoremIpsumParagraph fungere.

Det vigtigste funktionen kalder funktionerne generRandomSentence, generateRandomParagraph og generLoremIpsum. Programmet udskriver funktionens output til konsollen.

Du kan generere falske data for at teste din database

Gofakeit forenkler test med dynamisk datagenerering for at sikre kompatibilitet med forskellige krav.

Du kan bruge Gos indbyggede database/sql-pakke til at udfylde din SQL-database med falske data til test. Dette kan hjælpe dig med at teste flere edge cases og forbedre databasesikkerheden.