Faker.Net é uma biblioteca open‑source de geração de dados de teste simulados para .NET / C#. Inspirada no ecossistema Ruby Faker, resolve o problema da falta de grandes volumes de dados realistas durante depuração, inicialização de banco de dados e testes de unidade.
Repositório do projeto:https://github.com/jonwingfield/Faker.Net
Gere rapidamente dados fictícios próximos de cenários reais, tipos comuns:
- Dados pessoais: nome completo, sexo, número de telefone, e‑mail, número de documento de identidade
- Dados geográficos: estado‑cidade, endereço completo, código postal
- Dados empresariais: nome da empresa, cargo, trecho de texto, data e hora
- Dados de rede: endereço IP, URL, nome de usuário
Insira centenas de registros com nomes, sexos e contatos diferentes nas tabelas de teste sem digitar cada entrada manualmente.
Pacote NuGet
Install-Package Faker.NetCode language: CSS (css)
Ou via CLI
dotnet add package Faker.NetCode language: CSS (css)
Trechos de código
using Faker;
// Gerar nome completo
string fullName = Name.FullName();
// Gerar número de telefone
string phone = Phone.Number();
// Gerar endereço de e‑mail
string email = Internet.Email();
// Gerar endereço completo
string address = Address.FullAddress();Code language: JavaScript (javascript)
Demonstração de geração em lote
// Laço para criar 10 registros de usuário de teste
var userList = new List<User>();
for (int i = 0; i < 10; i++)
{
userList.Add(new User()
{
Name = Name.FullName(),
Phone = Phone.Number(),
Email = Internet.Email(),
Address = Address.FullAddress()
});
}Code language: HTML, XML (xml)
Gerar nomes aleatórios
Exemplo de aplicativo de console
static void Main(string[] args)
{
// Exibir 100 nomes completos em inglês aleatórios
for (int i = 0; i < 100; i++)
{
Console.WriteLine(Name.GetName());
}
Console.ReadKey();
}Code language: JavaScript (javascript)
Saída de exemplo: nomes como Bonnie Eichmann e Adrien Crooks. Alguns nomes podem trazer tratamentos (Miss, Mrs) ou sufixos acadêmicos (PhD, IV).
Análise da implementação interna
public static class Name
{
public static string GetName()
{
// Obter número inteiro aleatório entre 0 e 9
switch (FakerRandom.Rand.Next(10))
{
// 10%: Tratamento + primeiro nome + sobrenome (Miss Deontae Mante)
case 0:
return GetPrefix() + " " + GetFirstName() + " " + GetLastName();
// 10%: Primeiro nome + sobrenome + sufixo (Haskell Morissette PhD)
case 1:
return GetFirstName() + " " + GetLastName() + " " + GetSuffix();
// Restante 80%: formato padrão primeiro nome + sobrenome (Adrien Crooks)
default:
return GetFirstName() + " " + GetLastName();
}
}
// Seleciona um nome aleatório do conjunto de dados embutido
public static string GetFirstName()
{
return FIRST_NAMES.Rand();
}
}Code language: PHP (php)
Introdução