IRONSOFTWAREHOME
ENTWICKLER-UPDATES

NBuilder .NET (Funktionsweise für Entwickler)

Jacob Mellor, Chief Technology Officer @ Team Iron
Jacob Mellor
Updated: 21. April 2026

NBuilder ist eine .NET-Bibliothek, die die Generierung von Testdaten vereinfacht. Entwickler können mit seiner Fluent-Interface komplexe Objektstrukturen mühelos erstellen. Es bietet Flexibilität, Effizienz und nahtlose Integration mit beliebten Testframeworks. In diesem Artikel werden wir die Funktionen von NBuilder erkunden, wie man es installiert und seine Fähigkeiten mit praktischen Codebeispielen demonstrieren.

NBuilder .NET (Funktionsweise für Entwickler): Abbildung 1 - NBuilder

Funktionen von NBuilder

  1. NBuilder ist eine C# Open-Source .NET-Bibliothek, die zur Vereinfachung der Erstellung von Objekten für Test- und Mocking-Zwecke entwickelt wurde. Es ermöglicht es Entwicklern, Objekte schnell mit Standard- oder benutzerdefinierten Eingaben basierend auf verschiedenen Datentypen zu generieren.
  2. Es ist besonders nützlich für Unit-Tests, Funktionstests und Integrationstests.
  3. Es ist eines der wesentlichen Pakete für das Testen eingebauter .NET-Datentypen und komplexer Objekte.
  4. Es wird für die Generierung zufälliger Daten verwendet. Sie können zu diesem Open-Source-Projekt beitragen.
  5. Mit NBuilder können Sie mühelos Standardattribute überschreiben und benutzerdefinierte Konfigurationen schreiben.

Installation von NBuilder

Um NBuilder in der NuGet-Paket-Manager-Konsole zu installieren, verwenden Sie den folgenden Befehl.

PM > Install-Package NBuilder

Der obige Befehl installiert NBuilder mit all seinen Abhängigkeiten.

NBuilder .NET (Funktionsweise für Entwickler): Abbildung 2 - NBuilder installieren

Benutzung von NBuilder

NBuilder bietet eine flüssige Möglichkeit, Objekte spontan zu erstellen. Lassen Sie uns mit einem einfachen Beispiel zur Erstellung eines Objekts beginnen.

Hier ist der Quellcode der Person Model Klasse.

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

Beispiel 1: Erstellen eines Person-Objekts mit Standardwerten

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

Beispielfoto

NBuilder .NET (Funktionsweise für Entwickler): Abbildung 3 - Personenobjekt mit Werten

Beispiel 2: Erstellen von Objekten mit einem Custom Builder

Hier ist ein Beispiel zur Nutzung von NBuilder, um ein Person-Objekt mit benutzerdefinierten Eigenschaften zu erstellen und zu konfigurieren:

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

Der obige Code erstellt ein neues Person-Objekt mit benutzerdefinierten Eigenschaften. Es initialisiert einen customPersonBuilder für ein Person-Objekt, wobei der Name auf "Tom" und die E-Mail auf "Tom@email.com" gesetzt wird. Schließlich wird das Objekt erstellt und objTom zugewiesen.

Beispiel 3: Erstellen einer Person Objektliste mit Standardwert

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

Beispielfoto

NBuilder .NET (Funktionsweise für Entwickler): Abbildung 4 - Personenobjektliste

Hier hat die personList 10 Objekte mit ihren Standardwerten und gibt sie aus.

// 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 (Funktionsweise für Entwickler): Abbildung 5 - Automatische Wertzuweisung

Beispiel 4: Anpassung generierter Objekte

Manchmal müssen Sie möglicherweise die zu erstellenden Objekte anpassen. Sie können auch den Wert eines Objekts anpassen, indem Sie die With()-Methode verwenden.

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

Dies erstellt eine personList, wobei bei jedem Objekt der Standardwert überschrieben wird zu Name = "Kim", E-Mail = "abc@email.com" und IsMarried = false.

Beispiel 5: Erstellen einer Personenobjektliste mit realistischen Zufallsdaten

Um realistische Datenwerte in der Person List zu erhalten, können Sie die Faker Library .NET nutzen, um realistische Daten zu generieren.

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

Beispiel 6: Erstellung einer Liste von Person-Objekten mit sequentiellen Daten

Es gibt Zeiten, in denen Sie Objekte mit sequentiellen Daten erzeugen müssen. NBuilder .NET erleichtert dies durch die Verwendung der Do-Methode.

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

Hier stellt die All()-Methode sicher, dass die nachfolgenden Operationen auf alle 10 in Speicher erstellten Personenobjekte angewendet werden. Die Do()-Methode führt den Action-Delegaten auf jedem Person-Objekt aus. Diese Einrichtung weist die Id-Eigenschaft sequenziell beginnend mit 501 zu und benennt entsprechend jede Person sequenziell von "Person 1" bis "Person 10".

NBuilder .NET (Funktionsweise für Entwickler): Abbildung 6 - Sequentielle Daten

Beispiel 7: NBuilder mit Unit Testing unter Verwendung von Xunit

NBuilder wird in .NET erheblich in Testumgebungen verwendet, in denen Entwickler realistische und diverse Datenmengen für Tests generieren müssen. Es erleichtert das Testen und ist einfach zu warten mit komplexen Objekten, die es Entwicklern ermöglichen, benutzerdefinierte Initialisierungslogiken mit Lambda-Ausdrücken und Delegatfunktionen zu definieren, für diejenigen, die an einer effizienten und flexiblen Testdatengenerierung interessiert sind.

Modellklasse und Dienst für Unit Testing

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

Hier hat die Person-Klasse mehrere Eigenschaften wie Id, Name, Email und IsMarried, während PersonService eine Methode GetPersonEmail() enthält, die die E-Mail einer gegebenen Person zurückgibt.

Testklassen und Testdaten

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

Dieser Unit-Test überprüft, ob die GetPersonEmail-Methode der PersonService-Klasse die E-Mail-Adresse eines Person-Objekts mit der erwarteten E-Mail "Tom@email.com" korrekt zurückgibt. Es verwendet das Arrange-Act-Assert-Muster, um die Testdaten einzurichten, die Methode auszuführen und dann zu prüfen, ob das tatsächliche Ergebnis dem erwarteten Ergebnis entspricht.

Integration von NBuilder mit IronPDF

Erfahren Sie mehr über IronPDF ist eine leistungsstarke C#-Bibliothek, die für die Erstellung von PDFs aus HTML in .NET-Anwendungen entwickelt wurde. Mit seiner intuitiven API können Entwickler nahtlos PDF-Funktionen in ihre Projekte integrieren, sei es beim Erstellen von Rechnungen, Berichten oder interaktiven Formularen.

NBuilder .NET (Funktionsweise für Entwickler): Abbildung 7 - IronPDF

Installation von IronPDF

Öffnen Sie die NuGet-Paket-Manager-Konsole und führen Sie den folgenden Befehl aus:

PM > Install-Package IronPdf

Füllen Sie die Liste der 5 Personenobjekte aus

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

Erstellen eines PDF-Dokuments mit IronPDF

Dieser Code setzt den IronPDF-Lizenzschlüssel und generiert HTML-Inhalte aus einer Liste von Person-Objekten.

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

Die IronPdf.License.LicenseKey wird mit einem spezifischen Lizenzschlüssel festgelegt, um die Funktionen von IronPDF zu aktivieren. HTML-Inhalt wird dynamisch erstellt, indem über die people-Liste iteriert und die Details jedes Person-Objekts (Id, Name, E-Mail, IsMarried) in die HTML-Struktur eingefügt werden.

Personenliste im PDF-Dokument mit IronPDF rendern

Dieser Code konvertiert HTML-Inhalt in ein PDF-Dokument unter Verwendung des ChromePdfRenderer von IronPDF.

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

ChromePdfRenderer wird instanziiert, um den in htmlContent gespeicherten HTML-Inhalt in ein PDF-Dokument zu rendern. Das resultierende PDF-Dokument wird mit dem Namen "PersonList.pdf" im Dateisystem gespeichert.

Ausgabe

Unten ist die Ausgabe der von IronPDF generierten PersonList. Es enthält fünf Personen, jede mit Standardwerten.

NBuilder .NET (Funktionsweise für Entwickler): Abbildung 8 - PDF-Ausgabe

Abschluss

Zusammenfassend ist NBuilder ein robustes und flexibles Werkzeug zur Generierung von Testdaten in .NET, das die Erstellung komplexer Objektstrukturen vereinfacht und die Effizienz von Testprozessen verbessert. Durch die Integration mit IronPDF können Entwickler ihre Anwendungen mühelos erweitern, um PDF-Erstellungsmöglichkeiten einzuschließen, die für ihre Projekte von Wert sind. Gemeinsam können NBuilder und IronPDF die Entwicklungsabläufe erheblich verbessern, wodurch Tests und Dokumentengenerierung nahtlos und effizient erfolgen.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.