Вам часто понадобятся данные для тестирования вашего приложения со значимыми значениями. Просто используйте 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)
}

основной функция генерирует несколько поддельных значений с помощью Gofakeit и выводит их на консоль с помощью команды Распечатать функцию от ФМТ-пакет.

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}"`
}

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

Поля Человек структура у всех есть фальшивый структурные теги. в основной функция, человек переменная является экземпляром структуры Person.

подделка. Структура метод заполняет экспортируемые элементы структуры случайными данными на основе значения фальшивый тег экспортируемых полей. основной Затем функция выводит поля структуры на консоль.

Генерация сложных поддельных данных

Вы можете генерировать сложные поддельные данные с помощью Gofakeit, включая случайные предложения, абзацы и lorem ipsum с помощью Предложение, Параграф, и ЛоремИпсумПараграф функции соответственно.

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

generateRandomSentence функция генерирует случайное предложение с Gofakeit Предложение функция. generateRandomParagraph функция генерирует случайный абзац с Параграф функция.

сгенерироватьLoremIpsum функция генерирует случайный абзац lorem ipsum с ЛоремИпсумПараграф функция.

основной вызывает функции generateRandomSentence, generateRandomParagraph и generateLoremIpsum. Программа выводит выходные данные функции на консоль.

Вы можете сгенерировать фальшивые данные для проверки своей базы данных

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

Вы можете использовать встроенный в Go пакет database/sql, чтобы заполнить базу данных SQL поддельными данными для тестирования. Это может помочь вам протестировать больше пограничных случаев и повысить безопасность базы данных.