Често ще имате нужда от данни, за да тествате приложението си със смислени стойности. Просто използвайте Gofakeit, за да го фалшифицира вместо вас.

Надеждните и реалистични тестови данни са от основно значение за гарантиране на качеството и функционалността на вашите приложения. Генерирането на фалшиви данни, които имитират сценарии от реалния свят, е полезно умение за много форми на тестване.

Няма поддръжка за генериране на фалшиви данни в стандартната библиотека, но много пакети съществуват в по-широката екосистема на Go. Един популярен пакет за генериране на фалшиви данни е Gofakeit.

Първи стъпки с Gofakeit

Gofakeit е пакет за генериране на фалшиви данни във вашите Go програми.

Gofakeit предлага обширни функции, включително генериране на произволни данни в различни типове. Той също така предоставя опции за персонализиране за придържане към конкретни формати, поддръжка за локализиране и реалистичност генериране на време и дата.

Изпълнете тази команда в работната директория на вашия проект, след като сте инициализирали нов Go проект, за да добавите Gofakeit като зависимост от трета страна:

instagram viewer

go get github.com/brianvoe/gofakeit/v6

След като добавите Gofakeit като зависимост, можете да импортирате пакета по следния начин:

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

Като цяло Gofakeit предоставя повечето от функционалностите на пакет за генериране на фалшиви данни.

Генериране на основни фалшиви данни с Gofakeit

Gofakeit предоставя функционалност за генериране на различни видове данни, включително имена, имейли, телефони, бизнес фрази и др.

Ето как можете да генерирате основни фалшиви данни с 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)
}

The основен генерира няколко фалшиви стойности с Gofakeit и ги отпечатва на конзолата с помощта на Println функция от fmt пакет.

Gofakeit предоставя структурни маркери за генериране на фалшиви данни за различни полета. Когато използвате тези struct тагове, Gofakeit ще инициализира техните полета с фалшиви данни.

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

Полетата на Лице struct всички имат фалшив struct тагове. В основен функция, на човек променливата е екземпляр на структурата Person.

The gofakeit. Структура методът попълва експортирани елементи от структура с произволни данни въз основа на стойността на фалшив етикет на експортираните полета. The основен функцията след това отпечатва структурните полета на конзолата.

Генериране на сложни фалшиви данни

Можете да генерирате сложни фалшиви данни с Gofakeit, включително произволни изречения, абзаци и lorem ipsum с Изречение, параграф, и LoremIpsumParagraph функции, респ.

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 генериране на случайно изречение функцията генерира произволно изречение с Gofakeit Изречение функция. The генериране на случаен абзац функцията генерира произволен абзац с Параграф функция.

The генериранеLoremIpsum функцията генерира произволен абзац lorem ipsum с LoremIpsumParagraph функция.

The основен извиква функциите generateRandomSentence, generateRandomParagraph и generateLoremIpsum. Програмата отпечатва изходите на функцията на конзолата.

Можете да генерирате фалшиви данни, за да тествате вашата база данни

Gofakeit опростява тестването с динамично генериране на данни, за да гарантира съвместимост с различни изисквания.

Можете да използвате вградения пакет база данни/sql на Go, за да попълните вашата SQL база данни с фалшиви данни за тестване. Това може да ви помогне да тествате повече крайни случаи и да подобрите сигурността на базата данни.