Cách tạo dữ liệu thử nghiệm giả bằng Go

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.

Kiểm thử dữ liệu với Go

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

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 kiểm thử giả

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.

Thứ Sáu, 11/08/2023 16:45
21 👨 120
0 Bình luận
Sắp xếp theo