Коли ми пишем тести, ми зазвичай використовуємо якісь тестові дані. Кожний раз самому придумувати ці дані не є зручно. Також добре було, що наші тестові дані були похожі на справжні.
Існує багато пакетів для генерації тестових. Одним з таких пакетів є faker, простий у використанні з досить потужним функціоналом пакет.
Наприклад нам потрібно заповнити якусь структуру тестовими даними. Для цього нам потрібно описати структуру тегами, щоб були згенеровані тестові дані необхідно прописати структурні теги, які повинні починатись з ключового слова faker.
type testData struct {
Name string `faker:"name"` //Miss Casandra Kiehn
Email string `faker:"email"` //mJBJtbv@OSAaT.com
Phone string `faker:"e_164_phone_number"` //+724891571063
}
Дальше після двокрапки в подвійних лапках ми вказуємо, що це за дані повинні бути. В прикладах у репозиторії є наведені всі варіанти даних.
Також в тегу ми можем вказати додаткові дані, такі як наприклад розмір слайсу, чи варіант значень які можна використати.
type testData struct {
FixedIntList []int64 `faker:"slice_len=4"` //FixedIntList:[10,25,60,15]
}
Якщо ми не опишемо нашу структуру за допомогою тегів, тоді faker заповнить її випадковими даними які відповідатимуть типу поля.
Також цей пакет позволяє нам генерувати фейкові дані, не для цілої структури а для простих типів типів. Для цього необхідно використовувати відповідні методи.
faker.YearString() // => 1994
faker.DayOfWeek() // => Sunday
faker.TitleMale() // => Mr.
faker.TitleFemale() // => Mrs.
faker.FirstName() // => Whitney
faker.FirstNameMale() // => Kenny
faker.FirstNameFemale() // => Jana