IRONSOFTWAREHOME
開発者向けアップデート

NBuilder .NET(開発者向けの動作方法)

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年4月21日

NBuilderはテストデータ生成を簡素化する.NETライブラリです。 開発者は流暢なインターフェイスで複雑なオブジェクトグラフを簡単に作成できます。 人気のあるテスティングフレームワークとシームレスに統合された柔軟性、効率性を提供します。 この記事では、NBuilderの特徴、そのインストール方法、実際のコード例を通じてその機能を探ります。

NBuilder .NET (開発者向けの動作方法): 図1 - NBuilder

NBuilderの特徴

  1. NBuilderはテストやモックの目的でオブジェクトの作成を簡素化するために設計されたC#のオープンソース.NETライブラリです。 開発者は異なるデータ型に基づいたデフォルトまたはカスタム指定の入力でオブジェクトを素早く生成できます。
  2. 単体テスト、機能テスト、統合テストに特に役立ちます。
  3. .NET組み込みデータ型や複雑なオブジェクトをテストするための不可欠なパッケージのひとつです。
  4. ランダムデータ生成に使用されます。 このオープンソースプロジェクトに貢献できます。
  5. NBuilderを使用することで、デフォルトのプロパティを簡単にオーバーライドし、カスタム設定を記述できます。

NBuilderのインストール

NuGetパッケージ管理コンソールでNBuilderをインストールするには、次のコマンドを使用します。

PM > Install-Package NBuilder

上記のコマンドにより、すべての依存関係とともにNBuilderがインストールされます。

NBuilder .NET (開発者向けの動作方法): 図2 - NBuilderのインストール

NBuilderの使用方法

NBuilderはオブジェクトを即座に作成するための流暢な方法を提供します。 まず、オブジェクトを作成するシンプルな例から始めましょう。

こちらはPerson Modelクラスのソースコードです。

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

例1:デフォルト値を使用したPersonオブジェクトの作成

// 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 (開発者向けの動作方法): 図3 - 値を持つPersonオブジェクト

例2:カスタムビルダーを使用したオブジェクトの作成

こちらはカスタムプロパティを持つPersonオブジェクトを作成・設定するためにNBuilderを使用する方法の例です。

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

上記のコードはカスタムプロパティを持つ新しいPersonオブジェクトを作成します。 Personオブジェクト用にcustomPersonBuilderを初期化し、Nameを "Tom" に、Emailを "Tom@email.com" に設定します。 最終的にそのオブジェクトを構築し、objTomに割り当てます。

例3:デフォルト値を持つPersonオブジェクトリストの作成

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

サンプル画像

NBuilder .NET (開発者向けの動作方法): 図4 - Personオブジェクトリスト

ここでは、personListは10個のオブジェクトをデフォルトの値で持ち、それらを出力します。

// 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 (開発者向けの動作方法): 図5 - 自動的に値を割り当てる

例4:生成オブジェクトのカスタマイズ

作成されたオブジェクトをカスタマイズする必要がある場合もあります。 オブジェクトの値を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();

これにより、各オブジェクトのデフォルト値が上書きされ、Name = "Kim"、Email = "abc@email.com"、IsMarried = falseになります。

例5:リアルなランダムデータを使用したPersonオブジェクトリストの作成

Person Listでリアルなデータ値を得るために、Faker Library .NETを使用してリアルなデータを生成できます。

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

例6:連続データを使用したPersonオブジェクトリストの作成

連続したデータを持つオブジェクトを生成する必要があるときもあります。 NBuilder .NETは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();

ここでは、All()メソッドが、メモリ内に作成された10個のPersonオブジェクトすべてに対して後続の操作が適用されることを保証します。 Actionデリゲートを実行します。 この設定により、501から始まるIdプロパティが順番に割り当てられ、同様に各人の名前が"Person 1"から"Person 10"まで順番に付けられます。

NBuilder .NET (開発者向けの動作方法): 図6 - 連続データ

例7:Xunitを使用した単体テストでのNBuilder

.NET内でのNBuilderは特にテスト環境で広く使用され、開発者がテストのためにリアルで多様なデータを生成する必要がある場合に利用されます。 複雑なオブジェクトでテストを簡単かつ保守しやすくし、開発者がlambda式やデリゲート関数を使用してカスタム初期化ロジックを定義することが可能で、効率的かつ柔軟なテストデータ生成に興味のある人々に対応できます。

単体テストのためのモデルクラスとサービス

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

ここでは、GetPersonEmail()メソッドが含まれています。

テストクラスとテストデータ

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

この単体テストは、Personオブジェクトのメールアドレスを正しく返すことを検証します。 Arrange-Act-Assertパターンを使用してテストデータを設定し、メソッドを実行し、その後、実際の結果が期待される結果と一致していることを確認します。

NBuilderとIronPDFの統合

IronPDFについて学ぶは.NETアプリケーション内でHTMLからPDFを作成するために設計された強力なC#ライブラリです。 その直感的なAPIを通じて、開発者は請求書、レポート、インタラクティブなフォームを生成するかどうかに関係なく、自分のプロジェクトにシームレスにPDF機能を統合できます。

NBuilder .NET (開発者向けの動作方法): 図7 - IronPDF

IronPDFのインストール

NuGetパッケージ管理コンソールを開き、次のコマンドを実行します。

PM > Install-Package IronPdf

5つのPersonオブジェクトのリストを生成する

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

IronPDFを使用してPDFドキュメントを作成

このコードはIronPDFのライセンスキーを設定し、PersonオブジェクトのリストからHTMLコンテンツを生成します。

// 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.License.LicenseKeyは、IronPDFの機能を有効にするために特定のライセンスキーが設定されています。 HTMLコンテンツはPersonオブジェクトの詳細(Id、Name、Email、IsMarried)をHTML構造に追加することによって動的に構築されます。

IronPDFを使用してPDFドキュメントにPersonリストをレンダリングする

このコードはIronPDFのChromePdfRendererを使用してHTMLコンテンツをPDFドキュメントに変換します。

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

ChromePdfRendererは、htmlContentに保存されたHTMLコンテンツをPDFドキュメントにレンダリングするためにインスタンス化されます。 結果のPDFドキュメントは"PersonList.pdf"としてファイルシステムに保存されます。

出力

以下はIronPDFによって生成されたPersonListの出力です。 デフォルト値を持つ5人が含まれています。

NBuilder .NET (開発者向けの動作方法): 図8 - PDF出力

結論

結論として、NBuilderは.NETでのテストデータ生成のための強力で柔軟なツールであり、複雑なオブジェクトグラフの作成を合理化し、テストプロセスの効率を向上させます。 IronPDFと統合することで、開発者はプロジェクトにとって価値があると感じる人々のために、PDF生成機能をアプリケーションに簡単に拡張できます。 NBuilderとIronPDFを組み合わせることで、開発ワークフローが大幅に向上し、テストとドキュメント生成がシームレスかつ効率的になります。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から