Bạn thường sẽ cần dữ liệu có giá trị đầy đủ để thử nghiệm ứng dụng. Chỉ cần dùng Gofakeit để làm giả nó cho bạn.
Dữ liệu thử nghiệm đáng tin cậy và thực tế đóng vai trò then chốt trong việc đảm bảo chất lượng và chức năng của ứng dụng. Tạo dữ liệu giả mô phỏng tình huống thực tế là một kỹ năng hữu ích cho nhiều hình thức kiểm thử.
Không có hỗ trợ tạo dữ liệu giả trong thư viện chuẩn, nhưng nhiều package tồn tại trong hệ sinh thái rộng lớn hơn của Go. Một package phổ biến để tạo dữ liệu giả là Gofakeit.
Bắt đầu với Gofakeit
Gofakeit là một package tạo dữ liệu giả trong chương trình Go. Gofakeit cung cấp các tính năng phong phú, bao gồm tạo dữ liệu ngẫu nhiên truy cập các kiểu khác nhau. Nó cũng cung cấp các lựa chọn tùy biến để tuân thủ những tiêu chuẩn định dạng cụ thể, hỗ trợ bản địa hóa và thời gian thực & tạo ngày tháng.
Chạy lệnh này trong thư mục làm việc của dự án, sau đó bạn đã khởi tạo một dự án Go mới, để thêm Gofakeit làm phần phụ thuộc bên thứ ba:
go get github.com/brianvoe/gofakeit/v6
Sau khi thêm Gofakeit làm phần phụ thuộc bạn có thể nhập package như sau:
import (
"github.com/brianvoe/gofakeit/v6"
)
Nhìn chung, Gofakeit cung cấp phần lớn chức năng của package tạo dữ liệu giả.
Tạo dữ liệu giả với Gofakeit
Gofakeit cung cấp chức năng tạo các kiểu dữ liệu khác nhau, bao gồm tên, email, điện thoại và các giai đoạn kinh doanh…
Dưới đây là cách bạn có thể tạo dữ liệu giả bằng Gofakeit:
package main
import (
"fmt"
"github.com/brianvoe/gofakeit/v6"
)
func main() {
// Tạo tên giả
name := gofakeit.Name()
fmt.Println("Name:", name)
// Tạo địa chỉ email giả
email := gofakeit.Email()
fmt.Println("Email:", email)
// Tạo số điện thoại giả
phone := gofakeit.Phone()
fmt.Println("Phone:", phone)
// Tạo tên công ty giả
company := gofakeit.Company()
fmt.Println("Company:", company)
// Tạo số thẻ tín dụng giả
creditCard := gofakeit.CreditCardNumber()
fmt.Println("Credit Card:", creditCard)
// Tạo giai đoạn hacker giả
hackerPhrase := gofakeit.HackerPhrase()
fmt.Println("Hacker Phrase:", hackerPhrase)
// Tạo tên công việc giả
jobTitle := gofakeit.JobTitle()
fmt.Println("Job Title:", jobTitle)
// Tạo ký hiệu viết tắt tiền tệ giả
currency := gofakeit.CurrencyShort()
fmt.Println("Currency:", currency)
}
Hàm main tạo một số giá trị giả bằng Gofakeit và in chúng sang console bằng hàm Println từ package fmt.
Gofakeit cung cấp các thẻ struct để tạo dữ liệu giả cho các trường khác nhau. Khi dùng tag struct, Gofakeit sẽ khởi tạo các trường bằng dữ liệu giả.
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ác trường của struct Person đều có thẻ cấu trúc giả. Trong hàm main, biến person là một phiên bản của struct Person.
Phương thức gofakeit.Struct điền vào các phần tử đã xuất của một struct với dữ liệu ngẫu nhiên dựa trên giá trị của tag fake của các trường đã xuất. Hàm main sau đó in các trường cấu trúc vào console.
Tạo dữ liệu giả phức tạp
Bạn có thể tạo dữ liệu giả phức tạp bằng Gofakeit, bao gồm các câu ngẫu nhiên, đoạn, và lorem ipsum tương ứng với các hàm Sentence, Paragraph, và LoremIpsumParagraph.
package main
import (
"fmt"
"github.com/brianvoe/gofakeit/v6"
)
func generateRandomSentence() string {
// Tạo câu ngẫu nhiên bằng 6 từ
sentence := gofakeit.Sentence(6)
return sentence
}
func generateRandomParagraph() string {
// Tạo đoạn ngẫu nhiên bằng 3 câu, mỗi câu có từ 4 tới 8 từ
paragraph := gofakeit.Paragraph(3, 4, 8, "/n")
return paragraph
}
func generateLoremIpsum() string {
// Tạo 2 đoạn text lorem ipsum, mỗi đoạn có từ 3 tới 5 câu
loremIpsum := gofakeit.LoremIpsumParagraph(3, 5, 12, "\\n")
return loremIpsum
}
func main() {
// Thiết lập seed ngẫu nhiên cho kết quả nhất quán (tùy chọn)
gofakeit.Seed(0)
// Tạo và in câu ngẫu nhiên
fmt.Println("Random Sentence:")
fmt.Println(generateRandomSentence())
// Tạo và in đoạn ngẫu nhiên
fmt.Println("\\nRandom Paragraph:")
fmt.Println(generateRandomParagraph())
// Tạo và in text lorem ipsum
fmt.Println("\\nLorem Ipsum Text:")
fmt.Println(generateLoremIpsum())
}
Hàm generateRandomSentence tạo một câu ngẫu nhiên với hàm Sentence của Gofakeit. Hàm generateRandomParagraph tạo một đoạn ngẫu nhiên với hàm Paragraph.
Hàm generateLoremIpsum tạo một đoạn lorem ipsum ngẫu nhiên với hàm LoremIpsumParagraph.
Hàm main gọi generateRandomSentence, generateRandomParagraph, và generateLoremIpsum. Hàm này in các kết quả sang console.
Gofakeit đơn giản hóa quá trình kiểm thử bằng cách tạo dữ liệu năng động để đảm bảo khả năng đáp ứng các yêu cầu khác nhau. Hi vọng bài viết giúp bạn hiểu rõ hơn về quá trình này.