U heeft vaak gegevens nodig om uw app te testen met zinvolle waarden. Gebruik gewoon Gofakeit om het voor je te vervalsen.

Betrouwbare en realistische testgegevens zijn cruciaal om de kwaliteit en functionaliteit van uw apps te waarborgen. Het genereren van nepgegevens die scenario's uit de echte wereld nabootsen, is een nuttige vaardigheid voor veel vormen van testen.

Er is geen ondersteuning voor het genereren van valse gegevens in de standaardbibliotheek, maar er bestaan ​​veel pakketten in het bredere ecosysteem van Go. Een populair pakket voor het genereren van valse gegevens is Gofakeit.

Aan de slag met Gofakeit

Gofakeit is een pakket voor het genereren van nepgegevens in je Go-programma's.

Gofakeit biedt uitgebreide functies, waaronder het willekeurig genereren van gegevens over verschillende typen. Het biedt ook aanpasbare opties voor naleving van specifieke indelingen, ondersteuning voor lokalisatie en realistisch generatie van tijd en datum.

Voer deze opdracht uit in de werkmap van uw project, nadat u een nieuw Go-project hebt geïnitialiseerd, om Gofakeit toe te voegen als een afhankelijkheid van derden:

go get github.com/brianvoe/gofakeit/v6

Nadat u Gofakeit als afhankelijkheid hebt toegevoegd, kunt u het pakket als volgt importeren:

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

Over het algemeen biedt Gofakeit de meeste functionaliteit van een pakket voor het genereren van nepgegevens.

Fundamentele nepgegevens genereren met Gofakeit

Gofakeit biedt functionaliteit voor het genereren van verschillende soorten gegevens, waaronder namen, e-mails, telefoons, zakelijke zinnen, enz.

Hier leest u hoe u basis nepgegevens kunt genereren met 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 voornaamst functie genereert verschillende valse waarden met Gofakeit en drukt ze af naar de console met behulp van de Println functie uit de fmt-pakket.

Gofakeit biedt struct-tags voor het genereren van valse gegevens voor verschillende velden. Wanneer u deze struct-tags gebruikt, zal Gofakeit hun velden initialiseren met valse gegevens.

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

De velden van de Persoon struct allemaal hebben nep struct-tags. In de voornaamst functie, de persoon variabele is een instantie van de Person-structuur.

De gofakeit. structuur methode vult geëxporteerde elementen van een structuur in met willekeurige gegevens op basis van de waarde van de nep tag van geëxporteerde velden. De voornaamst functie drukt vervolgens de struct-velden af ​​naar de console.

Het genereren van complexe valse gegevens

U kunt complexe valse gegevens genereren met Gofakeit, inclusief willekeurige zinnen, alinea's en lorem ipsum met de Zin, Paragraaf, En LoremIpsumParagraaf respectievelijke functies.

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 randomSentence genereren functie genereert een willekeurige zin met die van Gofakeit Zin functie. De genererenRandomParagraph functie genereert een willekeurige paragraaf met de Paragraaf functie.

De genererenLoremIpsum functie genereert een willekeurige lorem ipsum paragraaf met de LoremIpsumParagraaf functie.

De voornaamst functie roept de functies createRandomSentence, generatedRandomParagraph en genereerLoremIpsum aan. Het programma drukt de uitvoer van de functie af naar de console.

U kunt valse gegevens genereren om uw database te testen

Gofakeit vereenvoudigt testen met dynamische gegevensgeneratie om compatibiliteit met uiteenlopende vereisten te garanderen.

U kunt Go's ingebouwde database/sql-pakket gebruiken om uw SQL-database te vullen met valse gegevens om te testen. Dit kan u helpen meer edge-cases te testen en de databasebeveiliging te verbeteren.