O Bogus é uma biblioteca que foi criada para gerar dados fake, ela foi desenvolvida baseada no facker.js e sua sintaxe de utilização foi inspirada no FluentValidation. A biblioteca foi desenvolvida por Brian Chavez e funciona hoje com C#, F# e VB.NET.
A ideia principal da biblioteca é gerar dados fake para a aplicação de forma simples e prática e principalmente para que seja possível fazer testes sem dificuldades.
Usando o Bogus
Vamos ao que interessa, para o exemplo vamos criar um projeto Console App no Visual Studio.
Após isso, vamos adicionar uma nova classe ao nosso projeto:
Vamos chamar nossa classe de “Pessoa”.
Nossa classe vai ficar da seguinte forma:
Com isso já temos o necessário para utilizar o Bogus.
Instalando o Bogus
Para fazer a instalação do Bogus basta adicionar a referência no Nuget Packge:
Com a biblioteca istalada já temos o necessário para criar nossos objetos fake utilizando o Bogus.
Criando nosso fake
O Bogus permite você gerar diversos dados, como nome, datas, endereço e diversos tipos de dados. Você também tem a opção de trabalhar com gêneros para a geração de dados e ele ainda tem suporte a vários idiomas, abaixo vamos preencher uma classe pessoa com sexo feminino e com os dados em português, vejamos o exemplo:
Vamos entender o que o código faz, primeiro passo é definir um objeto “Faker<Pessoa>” ele é do tipo genérico e vai gerar o nosso objeto pessoa. Como parâmetro estamos passando o locale “pt_BR”, que vai ser responsável por trazer os dados na nossa língua.
Após isso vamos utilizar a linguagem fluente para configurar nosso objeto, o “RuleFor” é responsável por gerar nossos dados, no primeiro parâmetro é informada a propriedades que desejamos alimentar, no segundo é onde utilizamos os fakes do Bogus para alimentar cada propriedade, temos diversos fakes disponíveis.
No exemplo estamos utilizando os fakes de geração randômica de guid, nome e data de nascimento. Podemos observar que o fake do nome é definido para gerar um nome completo do sexo feminino.
Ao final chamamos o método “Generate”, onde ele gera uma instancia da nossa classe pessoa com os dados. Se pedir para imprimir os dados em telas teremos o seguinte resultado:
Vale lembrar que a cada nova execução os dados gerados são diferentes, veja:
Os dados são gerados aleatoriamente a cada execução, assim tendo casos dinâmicos de dados.
Gerando Listas
E se você precisar gerar uma lista de pessoas ao invés de uma única pessoa?
É muito simples também, basta passar no método “Generate” a quantidade de objetos que você deseja gerar, abaixo vamos mostrar como seria a geração de uma lista com 3 pessoas:
No exemplo foi retirado do método “FullName” o parâmetro de sexo, assim o Bogus já entende que ele tem que gerar nomes com sexo aleatórios.
O resultado é esse:
Conclusão
Podemos ver que com o Bogus podemos gerar facilmente dados fake, uma boa aplicação dessa biblioteca é no cenário de testes de unidade, assim deixando os testes mais ricos. O Bogus é muito rico, no github você pode ver tudo que pode ser gerado com o Bogus.
Código de exemplo
https://github.com/tborgesvieira/BogusUtilizacao