IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

NBuilder .NET (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 21 avril 2026

NBuilder est une bibliothèque .NET simplifiant la génération de données de test. Les développeurs peuvent créer des graphiques d'objets complexes sans effort avec son interface fluide. Il offre flexibilité, efficacité et intégration transparente avec les cadres de test populaires. Dans cet article, nous explorerons les fonctionnalités de NBuilder, comment l'installer et démontrer ses capacités avec des exemples de code pratiques.

NBuilder .NET (Comment ça fonctionne pour les développeurs) : Figure 1 - NBuilder

Fonctionnalités de NBuilder

  1. NBuilder est une bibliothèque open source .NET en C# conçue pour simplifier la création d'objets à des fins de test et de simulation. Elle permet aux développeurs de générer rapidement des objets avec des entrées par défaut ou spécifiées en fonction de différents types de données.
  2. Elle est particulièrement utile pour les tests unitaires, les tests fonctionnels et les tests d'intégration.
  3. C'est l'un des packages essentiels pour tester les types de données .NET intégrés et les objets complexes.
  4. Elle est utilisée pour la génération de données aléatoires. Vous pouvez contribuer à ce projet open source.
  5. Avec NBuilder, vous pouvez facilement remplacer les propriétés par défaut et écrire des configurations personnalisées.

Installation de NBuilder

Pour installer NBuilder dans la console du gestionnaire de packages NuGet, utilisez la commande suivante.

PM > Install-Package NBuilder

La commande ci-dessus installera NBuilder avec toutes ses dépendances.

NBuilder .NET (Comment ça fonctionne pour les développeurs) : Figure 2 - Installer NBuilder

Utilisation de NBuilder

NBuilder fournit un moyen fluide de créer des objets à la volée. Commençons par un exemple simple de création d'un objet.

Voici le code source de la classe de modèle Person.

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

Exemple 1 : Création d'un objet Person avec des valeurs par défaut

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

NBuilder .NET (Comment ça fonctionne pour les développeurs) : Figure 3 - Objet Person avec des valeurs

Exemple 2 : Création d'objets avec un générateur personnalisé

Voici un exemple de la façon d'utiliser NBuilder pour créer et configurer un objet Person avec des propriétés personnalisées :

// 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();

Le code ci-dessus crée un nouvel objet Person avec des propriétés personnalisées. Il initialise un customPersonBuilder pour un objet Person, définissant le Name à "Tom" et l'Email à "Tom@email.com". Enfin, il construit l'objet et l'assigne à objTom.

Exemple 3 : Création d'une liste d'objets Person avec une valeur par défaut

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

NBuilder .NET (Comment ça fonctionne pour les développeurs) : Figure 4 - Liste d'objets Person

Ici, personList contient 10 objets avec leurs valeurs par défaut et les 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 (Comment ça fonctionne pour les développeurs) : Figure 5 - Attribution automatique des valeurs

Exemple 4 : Personnalisation des objets générés

Parfois, vous pouvez avoir besoin de personnaliser les objets créés. Vous pouvez également personnaliser la valeur d'un objet en utilisant la méthode 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();

Cela crée un personList où chaque objet voit sa valeur par défaut remplacée par Name = "Kim", Email = "abc@email.com" et IsMarried = false.

Exemple 5 : Création d'une liste d'objets Person avec des données réalistes et aléatoires

Pour obtenir des valeurs de données réalistes dans la liste Person, vous pouvez utiliser la bibliothèque Faker .NET pour générer des données réalistes.

// 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();

Exemple 6 : Création d'une liste d'objets Person avec des données séquentielles

Il y a des moments où vous pourriez avoir besoin de générer des objets avec des données séquentielles. NBuilder .NET facilite cela en utilisant la méthode 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();

Ici, la méthode All() garantit que les opérations suivantes s'appliquent à tous les 10 objets Person créés en mémoire. La méthode Do() exécute le délégué Action sur chaque objet Person. Cette configuration attribue la propriété Id séquentiellement à partir de 501, et nomme chaque personne de façon séquentielle de "Person 1" à "Person 10".

NBuilder .NET (Comment ça fonctionne pour les développeurs) : Figure 6 - Données séquentielles

Exemple 7 : NBuilder avec test unitaire en utilisant Xunit

NBuilder dans .NET est significativement utilisé dans les environnements de test, où les développeurs ont besoin de générer un ensemble de données réalistes et diversifiées pour les tests. Il rend les tests faciles et maintenables avec des objets complexes qui permettent aux développeurs de définir une logique d'initialisation personnalisée en utilisant des expressions lambda et des fonctions de délégué répondant à ceux qui s'intéressent à la génération de données de test efficaces et flexibles.

Classe modèle et service pour les tests unitaires

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

Ici, la classe Person dispose de plusieurs propriétés telles que Id, Name, Email et IsMarried, tandis que PersonService contient une méthode GetPersonEmail() qui renvoie l'e-mail d'un Person donné.

Classes de test et données de test

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

Ce test unitaire vérifie que la méthode GetPersonEmail de la classe PersonService renvoie correctement l'adresse e-mail d'un objet Person avec l'e-mail attendu "Tom@email.com". Il utilise le modèle Arrange-Act-Assert pour mettre en place les données de test, exécuter la méthode, puis vérifier que le résultat réel correspond au résultat attendu.

Intégration de NBuilder avec IronPDF

En savoir plus sur IronPDF est une puissante bibliothèque C# conçue pour créer des PDF à partir de HTML dans les applications .NET. Avec son API intuitive, les développeurs peuvent intégrer parfaitement la fonctionnalité PDF dans leurs projets, qu'ils génèrent des factures, des rapports ou des formulaires interactifs.

NBuilder .NET (Comment ça fonctionne pour les développeurs) : Figure 7 - IronPDF

Installer IronPDF

Ouvrez la console du gestionnaire de packages NuGet, et exécutez la commande suivante:

PM > Install-Package IronPdf

Remplir la liste de 5 objets Person

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

Création de documents PDF à l'aide de IronPDF

Ce code définit la clé de licence IronPDF et génère du contenu HTML à partir d'une liste d'objets 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>";
}

Le IronPdf.License.LicenseKey est configuré avec une clé de licence spécifique pour activer les fonctionnalités d'IronPDF. Le contenu HTML est construit dynamiquement en itérant sur la liste people, en ajoutant les détails de chaque objet Person (Id, Name, Email, IsMarried) dans la structure HTML.

Rendu de la liste Person dans le document PDF avec IronPDF

Ce code convertit le contenu HTML en un document PDF en utilisant le 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 est instancié pour rendre le contenu HTML stocké dans htmlContent en document PDF. Le document PDF résultant est enregistré dans le système de fichiers avec le nom "PersonList.pdf".

Sortie

Ci-dessous se trouve le résultat de la liste Person générée par IronPDF. Il contient cinq personnes, chacune avec des valeurs par défaut.

NBuilder .NET (Comment ça fonctionne pour les développeurs) : Figure 8 - Sortie PDF

Conclusion

En conclusion, NBuilder est un outil robuste et flexible pour générer des données de test dans .NET, rationalisant la création de graphiques d'objets complexes et améliorant l'efficacité des processus de test. En s'intégrant à IronPDF, les développeurs peuvent facilement étendre leurs applications pour inclure des fonctionnalités de génération de PDF pour ceux qui le trouvent précieux pour leurs projets. Ensemble, NBuilder et IronPDF peuvent considérablement améliorer les flux de travail de développement, rendant les tests et la génération de documents fluides et efficaces.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise