شما اغلب برای آزمایش برنامه خود با مقادیر معنی دار به داده نیاز دارید. فقط از Gofakeit برای جعل کردن آن برای شما استفاده کنید.
داده های آزمایشی قابل اعتماد و واقع بینانه برای اطمینان از کیفیت و عملکرد برنامه های شما بسیار مهم است. تولید داده های جعلی که سناریوهای دنیای واقعی را تقلید می کند، یک مهارت مفید برای بسیاری از انواع آزمایش است.
هیچ پشتیبانی برای تولید دادههای جعلی در کتابخانه استاندارد وجود ندارد، اما بستههای زیادی در اکوسیستم گستردهتر Go وجود دارد. یکی از بسته های محبوب برای تولید داده های جعلی Gofakeit است.
شروع کار با Gofakeit
Gofakeit بسته ای برای تولید داده های جعلی در برنامه های Go شما است.
Gofakeit ویژگی های گسترده ای از جمله تولید داده های تصادفی در انواع مختلف ارائه می دهد. همچنین گزینه های قابل تنظیم برای پایبندی به فرمت های خاص، پشتیبانی از محلی سازی و تولید زمان و تاریخ واقعی را ارائه می دهد.
این دستور را در دایرکتوری کاری پروژه خود اجرا کنید، پس از اینکه یک پروژه Go جدید را راه اندازی کردید، تا Gofakeit را به عنوان یک وابستگی شخص ثالث اضافه کنید:
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"
)
func main() {
// 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)
}
تابع اصلی چندین مقدار جعلی را با Gofakeit تولید می کند و با استفاده از تابع Println از بسته fmt آنها را در کنسول چاپ می کند.
Gofakeit تگ های ساختاری را برای تولید داده های جعلی برای زمینه های مختلف ارائه می دهد. وقتی از این تگهای ساختاری استفاده میکنید، 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}"`
}
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)
}
فیلدهای Person struct همگی دارای تگ های ساختگی جعلی هستند. در تابع main، متغیر person نمونه ای از ساختار Person است.
روش gofakeit.Struct عناصر صادراتی یک ساختار را با داده های تصادفی بر اساس ارزش تگ جعلی فیلدهای صادر شده پر می کند. سپس تابع main فیلدهای struct را در کنسول چاپ می کند.
تولید داده های جعلی پیچیده
میتوانید با Gofakeit دادههای جعلی پیچیده، از جمله جملات تصادفی، پاراگرافها و lorem ipsum را به ترتیب با توابع جمله، پاراگراف و LoremIpsumParagraph تولید کنید.
package main
import (
"fmt"
"github.com/brianvoe/gofakeit/v6"
)
func generateRandomSentence() string {
// Generate a random sentence with 6 words
sentence := gofakeit.Sentence(6)
return sentence
}
func generateRandomParagraph() string {
// Generate a random paragraph with 3 sentences, each having 4 to 8 words
paragraph := gofakeit.Paragraph(3, 4, 8, "/n")
return paragraph
}
func generateLoremIpsum() string {
// Generate 2 paragraphs of lorem ipsum text, each having 3 to 5 sentences
loremIpsum := gofakeit.LoremIpsumParagraph(3, 5, 12, "\\n")
return loremIpsum
}
func main() {
// 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())
}
تابع generateRandomSentence یک جمله تصادفی با تابع جمله Gofakeit تولید می کند. تابع generateRandomParagraph یک پاراگراف تصادفی با تابع Paragraph تولید می کند.
تابع generateLoremIpsum یک پاراگراف لورم ایپسوم تصادفی با تابع LoremIpsumParagraph تولید می کند.
تابع اصلی توابع generateRandomSentence،geneRandomParagraph وgenereLoremIpsum را فراخوانی می کند. این برنامه خروجی های تابع را در کنسول چاپ می کند.
شما می توانید داده های جعلی را برای آزمایش پایگاه داده خود تولید کنید
Gofakeit تست را با تولید داده های پویا ساده می کند تا از سازگاری با الزامات مختلف اطمینان حاصل کند.
میتوانید از پایگاه داده/بسته sql داخلی Go برای پر کردن پایگاه داده SQL خود با دادههای جعلی برای آزمایش استفاده کنید. این می تواند به شما کمک کند موارد لبه بیشتری را آزمایش کرده و امنیت پایگاه داده را بهبود بخشد.