Cum să generați date de testare false cu Go

Datele de testare fiabile și realiste sunt esențiale pentru asigurarea calității și funcționalității aplicațiilor dvs. Generarea de date false care imită scenarii din lumea reală este o abilitate utilă pentru multe forme de testare.

Nu există suport pentru generarea de date false în biblioteca standard, dar multe pachete există în ecosistemul mai larg al Go. Un pachet popular pentru generarea de date false este Gofakeit.

Noțiuni introductive cu Gofakeit

Gofakeit este un pachet pentru generarea de date false în programele tale Go.

Gofakeit oferă funcții extinse, inclusiv generarea aleatorie de date în diferite tipuri. De asemenea, oferă opțiuni personalizabile pentru aderarea la formate specifice, suport pentru localizare și generare realistă a orei și datei.

Rulați această comandă în directorul de lucru al proiectului, după ce ați inițializat un nou proiect Go, pentru a adăuga Gofakeit ca dependență terță parte:

 go get github.com/brianvoe/gofakeit/v6

După ce adăugați Gofakeit ca dependență, puteți importa pachetul astfel:

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

În general, Gofakeit oferă cea mai mare parte a funcționalității unui pachet de generare de date false.

Generarea datelor false de bază cu Gofakeit

Gofakeit oferă funcționalitate pentru generarea diferitelor tipuri de date, inclusiv nume, e-mailuri, telefoane, expresii de afaceri etc.

Iată cum puteți genera date false de bază cu Gofakeit:

 package main

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

func main() {
    
    name := gofakeit.Name()
    fmt.Println("Name:", name)

    
    email := gofakeit.Email()
    fmt.Println("Email:", email)

    
    phone := gofakeit.Phone()
    fmt.Println("Phone:", phone)

    
    company := gofakeit.Company()
    fmt.Println("Company:", company)

    
    creditCard := gofakeit.CreditCardNumber()
    fmt.Println("Credit Card:", creditCard)

    
    hackerPhrase := gofakeit.HackerPhrase()
    fmt.Println("Hacker Phrase:", hackerPhrase)

    
    jobTitle := gofakeit.JobTitle()
    fmt.Println("Job Title:", jobTitle)

    
    currency := gofakeit.CurrencyShort()
    fmt.Println("Currency:", currency)
}

Funcția principală generează mai multe valori false cu Gofakeit și le imprimă pe consolă folosind funcția Println din pachetul fmt.

  Cum să creați widgeturi personalizate pe iPhone

Gofakeit oferă etichete struct pentru generarea de date false pentru diferite câmpuri. Când utilizați aceste etichete struct, Gofakeit își va inițializa câmpurile cu date false.

 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}"`
}

func main() {
    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)
}

Câmpurile structurii Person au toate etichete struct false. În funcția principală, variabila persoană este o instanță a structurii Person.

Metoda gofakeit.Struct completează elementele exportate ale unei structuri cu date aleatorii bazate pe valoarea etichetei false a câmpurilor exportate. Funcția principală imprimă apoi câmpurile struct pe consolă.

Generarea de date false complexe

Puteți genera date false complexe cu Gofakeit, inclusiv propoziții aleatorii, paragrafe și lorem ipsum cu funcțiile Sentence, Paragraph și LoremIpsumParagraph, respectiv.

 package main

import (
    "fmt"

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

func generateRandomSentence() string {
    
    sentence := gofakeit.Sentence(6)
    return sentence
}

func generateRandomParagraph() string {
    
    paragraph := gofakeit.Paragraph(3, 4, 8, "/n")
    return paragraph
}

func generateLoremIpsum() string {
    
    loremIpsum := gofakeit.LoremIpsumParagraph(3, 5, 12, "\\n")
    return loremIpsum
}

func main() {
    
    gofakeit.Seed(0)

    
    fmt.Println("Random Sentence:")
    fmt.Println(generateRandomSentence())

    
    fmt.Println("\\nRandom Paragraph:")
    fmt.Println(generateRandomParagraph())

    
    fmt.Println("\\nLorem Ipsum Text:")
    fmt.Println(generateLoremIpsum())
}

Funcția generateRandomSentence generează o propoziție aleatoare cu funcția Sentence a lui Gofakeit. Funcția generateRandomParagraph generează un paragraf aleatoriu cu funcția Paragraph.

Funcția generateLoremIpsum generează un paragraf aleatoriu lorem ipsum cu funcția LoremIpsumParagraph.

Funcția principală apelează funcțiile generateRandomSentence, generateRandomParagraph și generateLoremIpsum. Programul imprimă ieșirile funcției pe consolă.

  Cum să resetați încărcătorul wireless Mophie

Puteți genera date false pentru a vă testa baza de date

Gofakeit simplifică testarea cu generarea dinamică a datelor pentru a asigura compatibilitatea cu diverse cerințe.

Puteți utiliza pachetul de baze de date/sql încorporat de la Go pentru a vă completa baza de date SQL cu date false pentru testare. Acest lucru vă poate ajuta să testați mai multe cazuri marginale și să îmbunătățiți securitatea bazei de date.

FAQ

Î: Cum pot folosi aceste date de testare false?

Ar trebui să scrieți teste unitare și să le furnizați date de testare false pentru a verifica dacă părțile mici, componabile ale programului dumneavoastră funcționează corect.

Î: Ce alte pachete de testare oferă Go?

Go are un suport excelent încorporat prin pachetul său de testare. Cu acesta, puteți evalua codul, utilizați fuzzing pentru a vă varia datele de testare și puteți structura testele într-o ierarhie.

Î: Care este povestea din spatele Lorem Ipsum?

Lorem ipsum este un tip comun de text substituent pe care dezvoltatorii și designerii îl folosesc adesea în locul textului real. Este util pentru că se înțelege că este fals, dar seamănă totuși cu textul autentic.