IRONSOFTWAREHOME
ATUALIZAÇÕES DO DESENVOLVEDOR

NBuilder .NET (Como funciona para desenvolvedores)

Curtis Chau
Curtis Chau
Updated: 21 de abril de 2026

NBuilder é uma biblioteca .NET que simplifica a geração de dados de teste. Com sua interface intuitiva, os desenvolvedores podem criar grafos de objetos complexos sem esforço. Oferece flexibilidade, eficiência e integração perfeita com as estruturas de teste mais populares. Neste artigo, exploraremos os recursos do NBuilder, como instalá-lo e demonstraremos suas capacidades com exemplos práticos de código.

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 1 - NBuilder

Funcionalidades do NBuilder

  1. NBuilder é uma biblioteca .NET de código aberto em C# projetada para simplificar a criação de objetos para fins de teste e simulação. Permite que os desenvolvedores gerem rapidamente objetos com entradas padrão ou personalizadas, com base em diferentes tipos de dados.
  2. É especialmente útil para testes unitários, testes funcionais e testes de integração.
  3. É um dos pacotes essenciais para testar tipos de dados nativos do .NET e objetos complexos.
  4. É utilizado para geração de dados aleatórios. Você pode contribuir para este projeto de código aberto.
  5. Com o NBuilder, você pode substituir facilmente as propriedades padrão e escrever configurações personalizadas.

Instalando o NBuilder

Para instalar o NBuilder no Console do Gerenciador de Pacotes NuGet , use o seguinte comando.

PM > Install-Package NBuilder

O comando acima instalará o NBuilder com todas as suas dependências.

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 2 - Instale o NBuilder

Utilização do NBuilder

O NBuilder oferece uma maneira fluida de criar objetos dinamicamente. Vamos começar com um exemplo simples de criação de um objeto.

Aqui está o código-fonte da classe do modelo Pessoa.

class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public bool IsMarried { get; set; }
}

Exemplo 1: Criando um objeto Pessoa com valores padrão

// Create a new person object with default values using NBuilder
var person = Builder<Person>
                .CreateNew()
                .Build();
// By default, NBuilder can provide values like 
// Id = 1, Name = Name1, Email = Email1, IsMarried = false

Imagem de exemplo

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 3 - Objeto Pessoa com valores

Exemplo 2: Criando objetos com um construtor personalizado

Aqui está um exemplo de como usar o NBuilder para criar e configurar um objeto Pessoa com propriedades personalizadas:

// Initialize a custom builder for the Person object with specific values
var customPersonBuilder = Builder<Person>.CreateNew()
                .With(p => p.Name = "Tom")
                .With(p => p.Email = "Tom@email.com");
// Build the custom person object with the specified properties
var objTom = customPersonBuilder.Build();

O código acima cria um novo objeto Pessoa com propriedades personalizadas. Inicializa um customPersonBuilder para um objeto Person, definindo o Nome como "Tom" e o Email como "Tom@email.com". Finalmente, ele constrói o objeto e o atribui a objTom.

Exemplo 3: Criando uma lista de objetos Pessoa com valor padrão

// Create a list of 10 Person objects with default values using NBuilder
var personList = Builder<Person>
                                     .CreateListOfSize(10)
                                     .Build();

Imagem de exemplo

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 4 - Lista de objetos Pessoa

Aqui, a lista personList contém 10 objetos com seus valores padrão e os imprime.

// Creating a list of 10 Person objects with default values
var personList = Builder<Person>
                                            .CreateListOfSize(10)
                                            .Build();

// Print details of each Person object in the list
foreach (var person in personList)
{
    Console.WriteLine($"{person.Id}, {person.Name}, {person.Email}, {person.IsMarried}");
}

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 5 - Atribuição automática de valores

Exemplo 4: Personalizando Objetos Gerados

Às vezes, pode ser necessário personalizar os objetos que estão sendo criados. Você também pode personalizar o valor de um objeto utilizando o método With().

// Customize properties for all Person objects in the list
var personList = Builder<Person>
                .CreateListOfSize(10)
                .All()
                .With(p => p.Name = "Kim")
                .With(p => p.Email = "abc@email.com")
                .With(p => p.IsMarried = false)
                .Build();

Isso cria um personList com cada objeto tendo seu valor padrão substituído para Nome = "Kim", Email = "abc@email.com" e IsMarried = false.

Exemplo 5: Criando uma lista de objetos Pessoa com dados aleatórios realistas

Para obter valores de dados realistas na Lista de Pessoas, você pode usar a biblioteca Faker .NET para gerar dados realistas.

// Creating a list of Person objects with random yet realistic values using Faker
var personList = Builder<Person>
                .CreateListOfSize(10)
                .All()
                .With(p => p.Name = Faker.Name.FullName())
                .With(p => p.Id = Faker.RandomNumber.Next(20, 60))
                .Build();

Exemplo 6: Criando uma lista de objetos Pessoa com dados sequenciais

Existem momentos em que você pode precisar gerar objetos com dados sequenciais. O NBuilder .NET facilita isso usando o método Do.

// Creating a list of 10 sequential Person objects using NBuilder
var personList = Builder<Person>.CreateListOfSize(10)
                .All()
                .Do((p, i) => p.Id = 501 + i)
                .Do((p, i) => p.Name = $"Person {i + 1}")
                .Build();

Aqui, o método All() garante que as operações subsequentes sejam aplicadas a todos os 10 objetos pessoa criados na memória. O método Do() executa o delegado Action em cada objeto Person. Este ajuste atribui a propriedade Id sequencialmente começando do 501, e, de forma semelhante, nomeia cada pessoa sequencialmente como "Pessoa 1" até "Pessoa 10".

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 6 - Dados Sequenciais

Exemplo 7: NBuilder com testes unitários usando Xunit

O NBuilder no .NET é amplamente utilizado em ambientes de teste, onde os desenvolvedores precisam gerar um conjunto de dados realista e diversificado para os testes. Isso facilita e simplifica a manutenção dos testes com objetos complexos, permitindo que os desenvolvedores definam lógica de inicialização personalizada usando expressões lambda e funções delegadas, atendendo àqueles interessados ​​em geração de dados de teste eficiente e flexível.

Classe de modelo e serviço para teste de unidade

class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
    public bool IsMarried { get; set; }
}

class PersonService
{
    public string GetPersonEmail(Person person)
    {
        return person.Email;
    }
}

Aqui, a classe Person tem várias propriedades, tais como Id, Name, Email e IsMarried, enquanto PersonService contém um método GetPersonEmail() que retorna o email de um determinado Person.

Classes de teste e dados de teste

using Xunit;

public class PersonTests
{
     [Fact]
     public void GetPersonEmail_ReturnCorrectEmail()
     {
         // Arrange
         var service = new PersonService();
         string expectedEmail = "Tom@email.com";
         
         // Create a person with specific name and email using NBuilder
         var person = Builder<Person>.CreateNew()
             .With(p => p.Name = "Tom")
             .With(p => p.Email = "Tom@email.com")
             .Build();
         
         // Act
         var actualEmail = service.GetPersonEmail(person);
         
         // Assert
         Assert.Equal(expectedEmail, actualEmail);
     }
}

Este teste unitário verifica se o método GetPersonEmail da classe PersonService retorna corretamente o endereço de email de um objeto Person com o email esperado "Tom@email.com". Ele utiliza o padrão Arrange-Act-Assert para configurar os dados de teste, executar o método e, em seguida, verificar se o resultado real corresponde ao resultado esperado.

Integrando o NBuilder com o IronPDF

Saiba mais sobre o IronPDF , uma poderosa biblioteca C# projetada para criar PDFs a partir de HTML em aplicativos .NET . Com sua API intuitiva, os desenvolvedores podem integrar facilmente a funcionalidade de PDF em seus projetos, seja para gerar faturas, relatórios ou formulários interativos.

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 7 - IronPDF

Instalando o IronPDF

Abra o console do Gerenciador de Pacotes NuGet e execute o seguinte comando:

PM > Install-Package IronPdf

Preencha a lista de 5 objetos do tipo Pessoa.

// Generating instances of the Person class with NBuilder
var people = Builder<Person>.CreateListOfSize(5).Build();

Criando Documento PDF usando IronPDF

Este código define a chave de licença do IronPDF e gera conteúdo HTML a partir de uma lista de objetos Person.

// Setting the IronPDF license key
IronPdf.License.LicenseKey = "Your-License-Key";

// Building HTML content from Person object list
var htmlContent = "<h1>Person List</h1>";
foreach (var person in people)
{
    htmlContent += $"<p>Id: {person.Id}, Name: {person.Name}, Email: {person.Email}, IsMarried: {person.IsMarried}</p>";
}

O IronPdf.License.LicenseKey é configurado com uma chave de licença específica para habilitar os recursos do IronPDF. O conteúdo HTML é dinamicamente construído iterando sobre a lista people, anexando os detalhes de cada objeto Person (Id, Nome, Email, IsMarried) à estrutura HTML.

Renderizando a lista de pessoas em um documento PDF usando o IronPDF

Este código converte conteúdo HTML em um documento PDF usando o ChromePdfRenderer do IronPDF.

// Rendering HTML content into a PDF document using IronPDF
var renderer = new ChromePdfRenderer();
var pdfDoc = renderer.RenderHtmlAsPdf(htmlContent);
pdfDoc.SaveAs("PersonList.pdf");

ChromePdfRenderer é instanciado para renderizar o conteúdo HTML armazenado em htmlContent em um documento PDF. O documento PDF resultante é salvo no sistema de arquivos com o nome "PersonList.pdf".

Saída

Abaixo está o resultado da lista de pessoas (PersonList) gerada pelo IronPDF. Contém cinco pessoas, cada uma com valores padrão.

NBuilder .NET (Como Funciona para Desenvolvedores): Figura 8 - Saída PDF

Conclusão

Em resumo, o NBuilder é uma ferramenta robusta e flexível para gerar dados de teste em .NET, simplificando a criação de grafos de objetos complexos e aumentando a eficiência dos processos de teste. Ao integrar-se com o IronPDF, os desenvolvedores podem facilmente estender seus aplicativos para incluir recursos de geração de PDF para aqueles que consideram isso valioso para seus projetos. Em conjunto, o NBuilder e o IronPDF podem aprimorar significativamente os fluxos de trabalho de desenvolvimento, tornando os testes e a geração de documentos mais simples e eficientes.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Artigos relacionados

Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.