IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

NBuilder .NET (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

NBuilder to biblioteka .NET upraszczająca generowanie danych testowych. Dzięki płynnemu interfejsowi programiści mogą bez wysiłku tworzyć złożone grafy obiektów. Zapewnia elastyczność, wydajność i płynną integrację z popularnymi frameworkami testowymi. W tym artykułe omówimy funkcje NBuilder, sposób jego instalacji oraz zademonstrujemy jego możliwości na praktycznych przykładach kodu.

NBuilder .NET (Jak to dziala dla programistow): Rysunek 1 - NBuilder

Funkcje NBuilder

  1. NBuilder to biblioteka .NET typu open source napisana w języku C#, zaprojektowana w celu uproszczenia tworzenia obiektów do testowania i symulacji. Pozwala to programistom na szybkie generowanie obiektów z danymi domyślnymi lub niestandardowymi w oparciu o różne typy danych.
  2. Jest to szczególnie przydatne w przypadku testów jednostkowych, testów funkcjonalnych i testów integracyjnych.
  3. Jest to jeden z niezbędnych pakietów do testowania wbudowanych typów danych .NET i złożonych obiektów.
  4. Służy do generowania danych losowych. Możesz wnieść swój wkład w ten projekt open source.
  5. Dzięki NBuilder możesz bez wysiłku nadpisywać domyślne właściwości i tworzyć własne konfiguracje.

Instalacja NBuilder

Aby zainstalować NBuilder w konsoli menedżera pakietów NuGet, użyj następującego polecenia.

PM > Install-Package NBuilder

Powyższe polecenie zainstaluje NBuilder wraz ze wszystkimi jego zależnościami.

NBuilder .NET (Jak to dziala dla programistow): Rysunek 2 - Instalacja NBuilder

Zastosowanie NBuilder

NBuilder zapewnia płynny sposób tworzenia obiektów w locie. Zacznijmy od prostego przykładu tworzenia obiektu.

Oto kod źródłowy klasy Person Model.

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

Przykład 1: Tworzenie obiektu Person z wartościami domyślnymi

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

Przykładowy obrazek

NBuilder .NET (Jak to dziala dla programistow): Rysunek 3 - Obiekt osoby z wartosciami

Przykład 2: Tworzenie obiektów za pomocą niestandardowego Builders

Oto przykład wykorzystania NBuilder do utworzenia i skonfigurowania obiektu Person z niestandardowymi właściwościami:

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

Powyższy kod tworzy nowy obiekt Person z niestandardowymi właściwościami. Inicjuje obiekt customPersonBuilder dla obiektu Person, ustawiając imię na "Tom", a adres e-mail na "Tom@email.com". Na koniec tworzy obiekt i przypisuje go do objTom.

Przykład 3: Tworzenie listy obiektów Person z wartością domyślną

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

Przykładowy obrazek

NBuilder .NET (Jak to dziala dla programistow): Rysunek 4 - Lista obiektow osoby

W tym przypadku personList zawiera 10 obiektów z wartościami domyślnymi i PRINTuje je.

// 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 (Jak to dziala dla programistow): Rysunek 5 - Automatyczne przypisywanie wartosci

Przykład 4: Dostosowywanie generowanych obiektów

Czasami może zaistnieć potrzeba dostosowania tworzonych obiektów. Mozna rowniez dostosowac wartosc obiektu, uzywajac metody 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();

To tworzy personList, w ktorym kazdy obiekt ma nadpisana wartosc domyslna na Name = "Kim", Email = "abc@email.com" i IsMarried = false.

Przykład 5: Tworzenie listy obiektów typu Person z realistycznymi danymi losowymi

Aby uzyskać realistyczne wartości danych w liście osób, można użyć biblioteki Faker Library .NET do generowania realistycznych danych.

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

Przykład 6: Tworzenie listy obiektów typu Person z danymi sekwencyjnymi

Czasami może zaistnieć potrzeba generowania obiektów zawierających dane sekwencyjne. NBuilder .NET ułatwia to dzięki metodzie 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();

Tutaj metoda All() zapewnia, ze kolejne operacje beda stosowane do wszystkich 10 obiektow osoby utworzonych w pamieci. Metoda Do() wykonuje delegata Action na kazdym obiekcie Person. Ten konfiguracja przypisuje wlasciwosc Id sekwencyjnie, zaczynajac od 501, i podobnie nazywa kazda osobe sekwencyjnie jako "Person 1" do "Person 10".

NBuilder .NET (Jak to dziala dla programistow): Rysunek 6 - Dane sekwencyjne

Przykład 7: NBuilder z testowaniem jednostkowym przy użyciu Xunit

NBuilder w środowisku .NET jest szeroko stosowany w środowiskach testowych, gdzie programiści muszą generować realistyczny i zróżnicowany zestaw danych do testów. Ułatwia to testowanie i konserwację złożonych obiektów, które pozwalają programistom definiować niestandardową logikę inicjalizacji przy użyciu wyrażeń lambda i funkcji delegujących, co jest przydatne dla osób zainteresowanych wydajnym i elastycznym generowaniem danych testowych.

Klasa modelowa i usługa do testowania jednostkowego

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

Tutaj klasa Person ma kilka wlasciwosci, takich jak Id, Name, Email, i IsMarried, podczas gdy PersonService zawiera metode GetPersonEmail(), ktora zwraca email danego Person.

Klasy testowe i dane testowe

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

Ten test jednostkowy weryfikuje, ze metoda GetPersonEmail klasy PersonService poprawnie zwraca adres email obiektu Person z oczekiwanym emailem "Tom@email.com". Wykorzystuje wzorzec Arrange-Act-Assert do skonfigurowania danych testowych, wykonania metody, a następnie sprawdzenia, czy rzeczywisty wynik jest zgodny z oczekiwanym.

Integracja NBuilder z IronPDF

Dowiedz się więcej o IronPDF – potężnej bibliotece C# przeznaczonej do tworzenia plików PDF z HTML w aplikacjach .NET. Dzięki intuicyjnemu interfejsowi API programiści mogą płynnie zintegrować funkcje PDF ze swoimi projektami, niezależnie od tego, czy generują faktury, raporty czy interaktywne formularze.

NBuilder .NET (Jak to dziala dla programistow): Rysunek 7 - IronPDF

Instalacja IronPDF

Otwórz konsolę NuGet Package Manager i uruchom następujące polecenie:

PM > Install-Package IronPdf

Wypełnij listę 5 obiektów typu Person

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

Tworzenie dokumentu PDF przy użyciu IronPDF

Ten kod ustawia klucz licencyjny IronPDF i generuje zawartość HTML na podstawie listy obiektów 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>";
}

Ustawiono IronPdf.License.LicenseKey z okreslonym kluczem licencyjnym, aby aktywowac funkcje IronPDF. Zawartosc HTML jest dynamicznie konstruowana poprzez iteracje nad lista people, dodajac szczegoly kazdego obiektu Person (Id, Name, Email, IsMarried) do struktury HTML.

Renderowanie listy osób w dokumencie PDF przy użyciu IronPDF

Ten kod konwertuje zawartość HTML na dokument PDF przy użyciu biblioteki ChromePdfRenderer firmy IronPDF.

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

ChromePdfRenderer jest tworzony, aby renderowac zawartosc HTML przechowywana w htmlContent na dokument PDF. Powstały dokument PDF jest zapisywany w systemie plików pod nazwą "PersonList.pdf".

Wynik

Poniżej znajduje się wynik działania funkcji PersonList wygenerowany przez IronPDF. Zawiera pięć osób, z których każda ma wartości domyślne.

NBuilder .NET (Jak to dziala dla programistow): Rysunek 8 - Wynik w PDF

Wnioski

Podsumowując, NBuilder to solidne i elastyczne narzędzie do generowania danych testowych w środowisku .NET, usprawniające tworzenie złożonych grafów obiektów i zwiększające wydajność procesów testowania. Dzięki integracji z IronPDF programiści mogą w łatwy sposób rozszerzyć swoje aplikacje o funkcje generowania plików PDF dla tych, którzy uznają to za przydatne w swoich projektach. W połączeniu NBuilder i IronPDF mogą znacznie usprawnić procesy programistyczne, sprawiając, że testowanie i generowanie dokumentów przebiega płynnie i wydajnie.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta