IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

NBuilder, test verisi üretimini basitleştiren bir .NET kütüphanesidir. Geliştiriciler, akıcı arayüzü yardımıyla karmaşık nesne grafiklerini zahmetsizce oluşturabilirler. Esneklik, verimlilik ve popüler test çerçeveleriyle sorunsuz entegrasyon sunar. Bu makalede NBuilder'ın özelliklerini, nasıl kurulduğunu ve pratik kod örnekleriyle yeteneklerini keşfedeceğiz.

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 1 - NBuilder

NBuilder'ın Özellikleri

  1. NBuilder, test ve mock amaçları için nesne oluşturmayı basitleştirmek üzere tasarlanmış bir C# açık kaynaklı .NET kütüphanesidir. Geliştiriciler, varsayılan veya özel olarak belirtilen girdilerle farklı veri tiplerine dayalı nesneleri hızla üretebilirler.
  2. Özellikle birim testleri, fonksiyonel testler ve entegrasyon testleri için faydalıdır.
  3. Gömülü .NET veri türleri ve karmaşık nesneler için testlerin vazgeçilmez paketlerinden biridir.
  4. Rastgele veri üretimi için kullanılır. Bu açık kaynak projeye katkıda bulunabilirsiniz.
  5. NBuilder ile varsayılan özellikleri kolaylıkla geçersiz kılabilir ve özel yapılandırmalar yazabilirsiniz.

NBuilder'ı Kurma

NBuilder'ı NuGet Paket Yöneticisi Konsolu'ndan kurmak için aşağıdaki komutu kullanın.

PM > Install-Package NBuilder

Yukarıdaki komut, NBuilder'ı tüm bağımlılıklarıyla birlikte kuracaktır.

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 2 - NBuilder Yükleme

NBuilder'ın Kullanımı

NBuilder, nesneleri hızla oluşturmak için akıcı bir yol sağlar. Basit bir nesne oluşturma örneğiyle başlayalım.

İşte Kişi Model Sınıfı'nın kaynak kodu.

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

Örnek 1: Varsayılan Değerlerle Kişi Nesnesi Oluşturma

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

Örnek Görüntü

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 3 - Değerlerle Birlikte Kişi Nesnesi

Örnek 2: Özel Bir Yapıcı İle Nesneler Oluşturma

İşte NBuilder kullanarak, özel özelliklere sahip bir Kişi nesnesi oluşturmanın ve yapılandırmanın bir örneği:

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

Yukarıdaki kod, özel özelliklerle yeni bir Kişi nesnesi oluşturur. Bir Kişi objesi için customPersonBuilder'ı başlatır, Ad'ı 'Tom' ve E-posta'yı 'Tom@email.com' olarak ayarlar. Son olarak, nesneyi derleyip objTom'a atar.

Örnek 3: Varsayılan Değerli Kişi Nesne Listesi Oluşturma

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

Örnek Görüntü

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 4 - Kişi Nesne Listesi

Burada personList, varsayılan değerleriyle 10 nesne içerir ve onları yazdırır.

// 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 (Geliştiriciler İçin Nasıl Çalışır): Şekil 5 - Otomatik Değer Atama

Örnek 4: Oluşturulan Nesneleri Özelleştirme

Bazen oluşturduğunuz nesneleri özelleştirmeniz gerekebilir. Bir nesnenin değerini With() yöntemi kullanarak da özelleştirebilirsiniz.

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

Bu işlem, her nesnenin varsayılan değerini Name = "Kim", Email = "abc@email.com" ve IsMarried = false olacak şekilde değiştiren bir personList oluşturur.

Örnek 5: Gerçekçi Rastgele Verilerle Kişi Nesne Listesi Oluşturma

Kişi Listesinde gerçekçi veri değerleri elde etmek için Faker Library .NET'i kullanarak gerçekçi veri oluşturabilirsiniz.

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

Örnek 6: Sıralı Verilerle Kişi Nesne Listesi Oluşturma

Bazı zamanlarda sıralı verilerle nesneler üretmeniz gerekebilir. NBuilder .NET bunu Do yöntemi kullanarak kolaylaştırır.

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

Burada, All() yöntemi, bellekte oluşturulan 10 kişi nesnesinin tamamına sonraki işlemlerin uygulanmasını sağlar. Do() yöntemi, her Person nesnesinde Action temsilcisini yürütür. Bu kurulum, Id özelliğini 501'den başlayarak sıralı bir şekilde atar ve benzer şekilde her kişiyi "Kişi 1"'den "Kişi 10"'a kadar isimlendirir.

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 6 - Sıralı Veri

Örnek 7: Xunit Kulanarak NBuilder ile Birim Testleri

.NET'te NBuilder, geliştiricilerin test için gerçekçi ve çeşitli bir veri seti oluşturmaları gereken test ortamlarında önemli ölçüde kullanılmaktadır. Bu, karmaşık nesnelerle test yapmayı kolay ve sürdürülebilir hale getirir, geliştiricilerin, verimli ve esnek test verisi üretimi ilgisini çekenlere yönelik lambda ifadeleri ve temsilci işlevleri kullanarak özel başlatma mantığı tanımlamalarına olanak tanır.

Birim Testleri İçin Model Sınıfı ve Servis

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

Burada, Person sınıfı, Id, Name, Email ve IsMarried gibi çeşitli özelliklere sahiptir, PersonService ise verilen bir Person nesnesinin e-posta adresini döndüren GetPersonEmail() adlı bir metoda sahiptir.

Test Sınıfları ve Test Verisi

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

Bu birim testi, PersonService sınıfının GetPersonEmail yönteminin, "Tom@email.com" beklenen e-posta adresi ile bir Person nesnesinin e-posta adresini doğru bir şekilde döndürdüğünü doğrular. Test verilerini ayarlamak, yöntemi yürütmek ve ardından gerçek sonucun beklenen sonuçla eşleşip eşleşmediğini kontrol etmek için Düzenle-Yap-Doğrula modelini kullanır.

NBuilder'ı IronPDF ile Entegre Etme

IronPDF Hakkında Bilgi Edinin, .NET uygulamalarında HTML'den PDF Oluşturmak için tasarlanmış güçlü bir C# kütüphanesidir. Kullanıcı dostu API'si sayesinde geliştiriciler, projelerine PDF işlevselliğini sorunsuz bir şekilde entegre edebilir, ister faturalar, raporlar veya etkileşimli formlar üretiyor olsunlar.

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 7 - IronPDF

Installing IronPDF

NuGet Package Manager konsolunu açın ve şu komutu çalıştırın:

PM > Install-Package IronPdf

5 Kişi Nesneleri Listesini Doldur

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

IronPDF Kullanarak PDF Belgesi Oluşturma

Bu kod, IronPDF lisans anahtarını belirler ve bir Kişi nesneleri listesinden HTML içerik üretir.

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

IronPDF'in özelliklerini etkinleştirmek için IronPdf.License.LicenseKey belirli bir lisans anahtarı ile ayarlanmıştır. HTML içerik, people listesinin üzerinden geçilerek her bir Person nesnesinin (Id, Name, Email, IsMarried) detaylarını HTML yapısına ekleyerek dinamik olarak oluşturulur.

IronPDF Kullanarak PDF Belgesinde Kişi Listesinin Görselleştirilmesi

Bu kod, IronPDF'in ChromePdfRenderer'ını kullanarak HTML içeriğini bir PDF belgesine dönüştürür.

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

ChromePdfRenderer sınıfı, htmlContent depolanan HTML içeriğini bir PDF belgesine dönüştürmek için örneklenir. Elde edilen PDF belgesi, 'PersonList.pdf' adıyla dosya sistemine kaydedilir.

Çıktı

Aşağıda IronPDF tarafından oluşturulan PersonList'in çıktısı bulunmaktadır. Beş kişi içerir, her biri varsayılan değerlere sahiptir.

NBuilder .NET (Geliştiriciler İçin Nasıl Çalışır): Şekil 8 - PDF Çıktısı

Sonuç

Sonuç olarak, NBuilder, .NET'te test verisi oluşturma konusunda güçlü ve esnek bir araçtır ve karmaşık nesne grafiklerinin oluşturulmasını hızlandırarak test süreçlerinin verimliliğini artırır. IronPDF ile entegre ederek, geliştiriciler, projeleri için değerli bulanlar için PDF oluşturma yeteneklerini uygulamalarına kolayca ekleyebilirler. Birlikte, NBuilder ve IronPDF, geliştirme iş akışlarını önemli ölçüde artırabilir, test ve belge oluşturmayı sorunsuz ve verimli hale getirebilir.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez