IRONSOFTWAREHOME
ACTUALIZACIONES PARA DESARROLLADORES

NBuilder .NET (Cómo Funciona para Desarrolladores)

Jacob Mellor, Director de Tecnología @ Team Iron
Jacob Mellor
Updated: 21 de abril de 2026

NBuilder es una biblioteca .NET que simplifica la generación de datos de prueba. Los desarrolladores pueden crear gráficos de objetos complejos sin esfuerzo con su interfaz fluida. Ofrece flexibilidad, eficiencia e integración perfecta con marcos de prueba populares. En este artículo, exploraremos las características de NBuilder, cómo instalarlo y demostramos sus capacidades con ejemplos de código prácticos.

NBuilder .NET (Cómo funciona para desarrolladores): Figura 1 - NBuilder

Características de NBuilder

  1. NBuilder es una biblioteca de código abierto .NET en C# diseñada para simplificar la creación de objetos para propósitos de prueba y simulación. Permite a los desarrolladores generar rápidamente objetos con entradas predeterminadas o personalizadas basadas en diferentes tipos de datos.
  2. Es especialmente útil para pruebas unitarias, pruebas funcionales y pruebas de integración.
  3. Es uno de los paquetes esenciales para probar tipos de datos integrados de .NET y objetos complejos.
  4. Se utiliza para la generación de datos aleatorios. Puedes contribuir a este proyecto de código abierto.
  5. Con NBuilder, puedes sobrescribir sin esfuerzo las propiedades predeterminadas y escribir configuraciones personalizadas.

Instalación de NBuilder

Para instalar NBuilder en la Consola del Administrador de Paquetes NuGet, utiliza el siguiente comando.

PM > Install-Package NBuilder

El comando anterior instalará NBuilder con todas sus dependencias.

NBuilder .NET (Cómo funciona para desarrolladores): Figura 2 - Instalar NBuilder

Uso de NBuilder

NBuilder proporciona una forma fluida de crear objetos sobre la marcha. Comencemos con un ejemplo simple de creación de un objeto.

Aquí está el código fuente de la Clase del Modelo Persona.

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

Ejemplo 1: Creación de un objeto Persona con valores predeterminados

// 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

Imagen de muestra

NBuilder .NET (Cómo funciona para desarrolladores): Figura 3 - Objeto Persona con valores

Ejemplo 2: Creación de objetos con un constructor personalizado

Aquí hay un ejemplo de cómo usar NBuilder para crear y configurar un objeto Persona con propiedades 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();

El código anterior crea un nuevo objeto Persona con propiedades personalizadas. Inicializa un customPersonBuilder para un objeto Persona, configurando el Nombre como "Tom" y el Correo Electrónico como "Tom@email.com". Finalmente, construye el objeto y lo asigna a objTom.

Ejemplo 3: Creación de una lista de objetos persona con valor predeterminado

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

Imagen de muestra

NBuilder .NET (Cómo funciona para desarrolladores): Figura 4 - Lista de objetos Persona

Aquí personList tiene 10 objetos con sus valores predeterminados y los 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 (Cómo funciona para desarrolladores): Figura 5 - Asignación automática de valores

Ejemplo 4: Personalización de Objetos Generados

A veces puede que necesites personalizar los objetos que se están creando. También puedes personalizar el valor de un objeto utilizando el 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();

Esto crea un personList con cada objeto teniendo su valor predeterminado sobrescrito a Nombre = "Kim", Email = "abc@email.com", y IsMarried = false.

Ejemplo 5: Creación de una lista de objetos persona con datos aleatorios realistas

Para obtener valores de datos realistas en la Lista de Personas, puedes usar la Biblioteca Faker .NET para generar datos 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();

Ejemplo 6: Creación de una Lista de Objetos Persona con Datos Secuenciales

Hay momentos en que podrías necesitar generar objetos con datos secuenciales. NBuilder .NET facilita esto usando el 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();

Aquí, el método All() asegura que las operaciones subsiguientes se apliquen a los 10 objetos persona creados en memoria. El método Do() ejecuta el delegado Action en cada objeto Person. Esta configuración asigna la propiedad Id secuencialmente empezando desde 501, y de manera similar, nombra a cada persona secuencialmente como "Persona 1" a "Persona 10".

NBuilder .NET (Cómo funciona para desarrolladores): Figura 6 - Datos Secuenciales

Ejemplo 7: NBuilder con Pruebas Unitarias usando Xunit

NBuilder en .NET se utiliza significativamente en entornos de prueba, donde los desarrolladores necesitan generar un conjunto realista y diverso de datos para las pruebas. Facilita las pruebas haciéndolas fáciles y mantenibles con objetos complejos que permiten a los desarrolladores definir lógica de inicialización personalizada usando expresiones lambda y funciones delegadas para aquellos interesados en la generación eficiente y flexible de datos de prueba.

Clase modelo y servicio para pruebas unitarias

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;
    }
}

Aquí, la clase Person tiene varias propiedades como Id, Name, Email, y IsMarried, mientras que PersonService contiene un método GetPersonEmail() que retorna el email de un Person dado.

Clases de prueba y datos de prueba

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);
     }
}

Esta prueba unitaria verifica que el método GetPersonEmail de la clase PersonService retorne correctamente la dirección de correo de un objeto Person con el email esperado "Tom@email.com". Utiliza el patrón Arrange-Act-Assert para configurar los datos de prueba, ejecutar el método y luego verificar que el resultado actual coincida con el resultado esperado.

Integración de NBuilder con IronPDF

Aprende sobre IronPDF es una poderosa biblioteca en C# diseñada para crear PDFs desde HTML dentro de aplicaciones .NET. Con su API intuitiva, los desarrolladores pueden integrar funcionalidad PDF sin problemas en sus proyectos, ya sea que estén generando facturas, informes o formularios interactivos.

NBuilder .NET (Cómo funciona para desarrolladores): Figura 7 - IronPDF

Instalación de IronPDF

Abra la consola del Administrador de Paquetes NuGet, y ejecute el siguiente comando:

PM > Install-Package IronPdf

Rellenar la lista de 5 objetos Persona

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

Creación de Documento PDF usando IronPDF

Este código establece la clave de licencia de IronPDF y genera contenido HTML a partir de una lista de objetos Persona.

// 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>";
}

El IronPdf.License.LicenseKey se configura con una clave de licencia específica para habilitar las funciones de IronPDF. El contenido HTML se construye dinámicamente iterando sobre la lista people, agregando los detalles de cada objeto Person (Id, Nombre, Email, IsMarried) a la estructura HTML.

Renderización de la lista de personas en un documento PDF utilizando IronPDF

Este código convierte contenido HTML a un documento PDF usando el ChromePdfRenderer de IronPDF.

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

ChromePdfRenderer se instancia para renderizar el contenido HTML almacenado en htmlContent en un documento PDF. El documento PDF resultante se guarda en el sistema de archivos con el nombre "PersonList.pdf".

Producción

A continuación se muestra la salida de la PersonList generada por IronPDF. Contiene cinco personas, cada una con valores predeterminados.

NBuilder .NET (Cómo funciona para desarrolladores): Figura 8 - Salida PDF

Conclusión

En conclusión, NBuilder es una herramienta robusta y flexible para generar datos de prueba en .NET, agilizando la creación de gráficos de objetos complejos y mejorando la eficiencia de los procesos de prueba. Al integrarse con IronPDF, los desarrolladores pueden extender fácilmente sus aplicaciones para incluir capacidades de generación de PDF para aquellos que lo consideren valioso para sus proyectos. Juntos, NBuilder e IronPDF pueden mejorar significativamente los flujos de trabajo de desarrollo, haciendo que las pruebas y la generación de documentos sean fluidas y eficientes.

Jacob Mellor, Director de Tecnología @ Team Iron
Director de Tecnología

Jacob Mellor es Director de Tecnología de Iron Software y un ingeniero visionario pionero en la tecnología C# PDF. Como desarrollador original de la base de código principal de Iron Software, ha dado forma a la arquitectura de productos de la empresa desde su creación, transformándola, junto con el director ejecutivo Cameron Rimington, en una empresa de más de 50 personas que presta servicios a la NASA, Tesla y organismos gubernamentales de todo el mundo.

...
Leer más

Artículos Relacionados

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

OR
bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999