TGViewer
.NET Разработчик .NET Разработчик @netdeveloperdiary · 6.77K subscribers
Post #1180 1.57K
День девятьсот шестьдесят второй. #NuGet
Генерация Фейковых Данных с Помощью Faker.Net
При разработке, тестировании или демонстрации продукта часто важно использовать данные, которые не являются настоящими. Либо потому, что у вас ещё нет фактических данных, либо потому, что вы не хотите показывать или выбирать данные реальных пользователей, которые могут содержать конфиденциальную информацию. Faker.Net поможет в этом, упростив получение множества случайных имен, адресов, email адресов, и прочей личной информации.

Пакет .NET изначально был портом библиотеки Ruby от 2009 года, но во многом разошлась с ней. Библиотека Ruby сама по себе была портом библиотеки Perl Data::Faker от 2007 года. .NET библиотека продолжает использоваться и постоянно обновляется. Причина её популярности, вероятно, связана со множеством вариантов использования и очень простой структурой.

Сначала нужно установить пакет Faker.Net. Мы можем сделать это через диспетчер пакетов в Visual Studio или через интерфейс CLI:
dotnet add package Faker.Net

Теперь сгенерируем данные. Допустим, нам нужно создать несколько экземпляров этой модели:
class UserProfile
{
string Name { get; set; }
int Followers { get; set; }
string Address { get; set; }
string Bio { get; set; }
}

Здесь нам нужно сгенерировать имя, какое-то случайное число из нужного диапазона, адрес и некоторый случайный текст для биографии.
Мы можем сгенерировать имя из комбинации предопределённых имени, фамилии и отчества, либо сразу полное имя с обращением:
var user = new UserProfile();
user.Name = Faker.Name.FullName(NameFormats.WithPrefix);
// "Mrs. Jerod Nader"

Для генерации случайных чисел Faker.Net использует класс RandomNumberGenerator из System.Security.Cryptography:
user.Followers = Faker.RandomNumber.Next(0, 10000);
// 3452

Далее создадим адрес:
user.Address = $"{Faker.Address.Country()}, {Faker.Address.City()}";
// "Fiji, Wavaland"

Заметьте, что страна и город создаются независимо, поэтому они не пройдут валидацию, если она у вас есть. Также можно создавать индексы, названия улиц и т.п.

Последний шаг – текст для биографии. Можно просто взять несколько предложений из «рыбы» "Lorem Ipsum…":
user.Bio = String.Join(" ", Faker.Lorem.Sentences(3));
// "Ea voluptas maiores nihil quia et eum. Vel et eos est architecto rerum est. Eum esse voluptatem ab necessitatibus."

Кроме того, можно создавать:
- доменные имена:
user.CompanyDomain = Faker.Internet.DomainName();
// "torp.com"

- email адреса (заметьте, что использовано имя пользователя):
user.Email = Faker.Internet.Email(user.Name);
// "mrs_jerod.nader@hermanborer.name"

- URL адреса:
user.resources = Enumerable.Range(0,2).Select(_ => Faker.Internet.SecureUrl());
// "https://www.quigleyrobel.us/films/page.aspx"
// "https://www.braunborer.uk/guide/page.jsp"

- и многое другое.

Источник: https://blog.elmah.io/easy-generation-of-fake-dummy-data-in-c-with-faker-net/
More from @netdeveloperdiary
  1. Oct 16, 2026День 2816. #Карьера #AI Станет ли ИИ-Кодинг Концом Программирования для Людей? Автор ориги…
  2. Oct 15, 2026Post #3374
  3. Oct 14, 2026Post #3373
  4. Oct 13, 2026День 2813. #ЗаметкиНаПолях #Async Ещё Раз Про Async/Await в C#. Часть 1 Почему существует…
  5. Oct 12, 2026День 2812. #Карьера #AI Как Разработчикам Оставаться Полезными, Когда Код Пишет ИИ? По мер…
  6. Oct 11, 2026День 2811. #ВопросыНаСобеседовании Марк Прайс предложил свой набор из 60 вопросов (как тех…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →