Како генерисати лажне тестне податке помоћу Го

Поуздани и реалистични подаци тестирања су кључни у обезбеђивању квалитета и функционалности ваших апликација. Генерисање лажних података који имитирају сценарије из стварног света је корисна вештина за многе облике тестирања.

Не постоји подршка за генерисање лажних података у стандардној библиотеци, али многи пакети постоје у Го-овом ширем екосистему. Један популаран пакет за генерисање лажних података је Гофакеит.

Почетак рада са Гофакеитом

Гофакеит је пакет за генерисање лажних података у вашим Го програмима.

Гофакеит нуди опсежне функције, укључујући насумично генерисање података у различитим типовима. Такође пружа прилагодљиве опције за придржавање одређених формата, подршку за локализацију и реално генерисање времена и датума.

Покрените ову команду у радном директоријуму вашег пројекта, након што сте иницијализовали нови Го пројекат, да бисте додали Гофакеит као зависност треће стране:

 go get github.com/brianvoe/gofakeit/v6

Након што додате Гофакеит као зависност, можете увести пакет на следећи начин:

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

Све у свему, Гофакеит пружа већину функционалности пакета за генерисање лажних података.

Генерисање основних лажних података помоћу Гофакеита

Гофакеит пружа функционалност за генерисање различитих врста података, укључујући имена, е-пошту, телефоне, пословне фразе итд.

Ево како можете да генеришете основне лажне податке помоћу Гофакеит-а:

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

Главна функција генерише неколико лажних вредности помоћу Гофакеит-а и штампа их на конзоли помоћу функције Принтлн из фмт пакета.

  Како поделити Инстаграм објаву са својом причом

Гофакеит обезбеђује струцт ознаке за генерисање лажних података за различита поља. Када користите ове струцт ознаке, Гофакеит ће иницијализовати њихова поља лажним подацима.

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

Сва поља структуре Персон имају лажне ознаке структуре. У главној функцији, променљива персон је инстанца структуре Персон.

Метода гофакеит.Струцт попуњава извезене елементе структуре насумичним подацима на основу вредности лажне ознаке извезених поља. Главна функција затим штампа поља структуре на конзоли.

Генерисање сложених лажних података

Можете да генеришете сложене лажне податке помоћу Гофакеита, укључујући насумичне реченице, пасусе и лорем ипсум са функцијама Сентенце, Параграпх и ЛоремИпсумПараграпх.

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

ГенерирањеРандомСентенце функција генерише случајну реченицу са Гофакеит-овом функцијом Сентенце. ГенерирањеРандомПараграпх функција генерише насумични пасус са функцијом Параграпх.

ГенериратиЛоремИпсум функција генерише насумични лорем ипсум параграф са функцијом ЛоремИпсумПараграпх.

Главна функција позива функције генератеРандомСентенце, генератеРандомПараграпх и генератеЛоремИпсум. Програм штампа излазе функције на конзолу.

  Како играти Јуст Цаусе 3 на Линуку

Можете да генеришете лажне податке да бисте тестирали своју базу података

Гофакеит поједностављује тестирање помоћу динамичког генерисања података како би осигурао компатибилност са различитим захтевима.

Можете да користите Го-ов уграђени пакет базе података/скл да попуните своју СКЛ базу података лажним подацима за тестирање. Ово вам може помоћи да тестирате више ивичних случајева и побољшате безбедност базе података.

ФАК

П: Како могу да користим ове лажне податке теста?

Требало би да напишете јединичне тестове и да им обезбедите лажне тестове да бисте проверили да ли мали делови вашег програма који се могу саставити исправно раде.

П: Које друге пакете за тестирање Го пружа?

Го има одличну уграђену подршку преко свог пакета за тестирање. Помоћу њега можете да упоредите код, користите фуззинг да бисте варирали своје тестне податке и структурирали своје тестове у хијерархији.

П: Која је прича иза Лорем Ипсума?

Лорем ипсум је уобичајен тип текста чувара места који програмери и дизајнери често користе уместо правог текста. Корисно је јер се сматра лажним, али и даље личи на прави текст.