K otestování aplikace pomocí smysluplných hodnot budete často potřebovat data. Stačí použít Gofakeit, aby to za vás předstíral.

Spolehlivá a realistická testovací data jsou klíčová pro zajištění kvality a funkčnosti vašich aplikací. Generování falešných dat, která napodobují scénáře ze skutečného světa, je užitečná dovednost pro mnoho forem testování.

Ve standardní knihovně neexistuje žádná podpora pro generování falešných dat, ale v širším ekosystému Go existuje mnoho balíčků. Jedním z populárních balíčků pro generování falešných dat je Gofakeit.

Začínáme s Gofakeitem

Gofakeit je balíček pro generování falešných dat ve vašich programech Go.

Gofakeit nabízí rozsáhlé funkce, včetně generování náhodných dat napříč různými typy. Poskytuje také přizpůsobitelné možnosti pro dodržování konkrétních formátů, podporu lokalizace a realistické generování času a data.

Spusťte tento příkaz v pracovním adresáři vašeho projektu poté, co inicializujete nový projekt Go, abyste přidali Gofakeit jako závislost třetí strany:

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

Po přidání Gofakeit jako závislosti můžete importovat balíček takto:

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

Celkově Gofakeit poskytuje většinu funkcí balíčku pro generování falešných dat.

Generování základních falešných dat pomocí Gofakeit

Gofakeit poskytuje funkce pro generování různých druhů dat, včetně jmen, e-mailů, telefonů, obchodních frází atd.

Zde je návod, jak můžete pomocí Gofakeitu generovat základní falešná data:

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

The hlavní funkce generuje několik falešných hodnot pomocí Gofakeit a vytiskne je do konzole pomocí Println funkce z fmt balíček.

Gofakeit poskytuje struct tagy pro generování falešných dat pro různá pole. Když použijete tyto struct tagy, Gofakeit inicializuje jejich pole falešnými daty.

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

Pole Osoba struct všichni mají falešný struct tagy. V hlavní funkce, osoba proměnná je instancí struktury Osoba.

The gofakeit. Struktura metoda vyplní exportované prvky struktury náhodnými daty na základě hodnoty falešný tag exportovaných polí. The hlavní funkce pak vytiskne pole struktur do konzoly.

Generování složitých falešných dat

Pomocí Gofakeit můžete generovat složitá falešná data, včetně náhodných vět, odstavců a lorem ipsum pomocí Věta, Odstavec, a LoremIpsumParagraph funkcí, resp.

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

The generovat náhodnou větu funkce generuje náhodnou větu s Gofakeit's Věta funkce. The generovatNáhodnýParagraph funkce generuje náhodný odstavec s Odstavec funkce.

The generovatLoremIpsum funkce generuje náhodný odstavec lorem ipsum s LoremIpsumParagraph funkce.

The hlavní funkce volá funkce createRandomSentence, generationRandomParagraph a generationLoremIpsum. Program vytiskne výstupy funkce do konzole.

Můžete generovat falešná data pro testování databáze

Gofakeit zjednodušuje testování pomocí dynamického generování dat, aby byla zajištěna kompatibilita s různými požadavky.

K naplnění databáze SQL falešnými daty pro testování můžete použít vestavěný balíček databáze/sql Go. To vám může pomoci otestovat více okrajových případů a zlepšit zabezpečení databáze.