.NETヘルプ NBuilder .NET(開発者向けの動作方法) Jacob Mellor 更新日:2025年6月22日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る NBuilderはテストデータ生成を簡素化する.NETライブラリです。 開発者は流暢なインターフェイスで複雑なオブジェクトグラフを簡単に作成できます。 人気のあるテスティングフレームワークとシームレスに統合された柔軟性、効率性を提供します。 この記事では、NBuilderの特徴、そのインストール方法、実際のコード例を通じてその機能を探ります。 NBuilderの特徴 NBuilderはテストやモックの目的でオブジェクトの作成を簡素化するために設計されたC#のオープンソース.NETライブラリです。 開発者は異なるデータ型に基づいたデフォルトまたはカスタム指定の入力でオブジェクトを素早く生成できます。 単体テスト、機能テスト、統合テストに特に役立ちます。 .NET組み込みデータ型や複雑なオブジェクトをテストするための不可欠なパッケージのひとつです。 ランダムデータ生成に使用されます。 このオープンソースプロジェクトに貢献できます。 NBuilderを使用することで、デフォルトのプロパティを簡単にオーバーライドし、カスタム設定を記述できます。 NBuilderのインストール NuGetパッケージ管理コンソールでNBuilderをインストールするには、次のコマンドを使用します。 Install-Package NBuilder 上記のコマンドにより、すべての依存関係とともに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; } } class Person { public int Id { get; set; } public string Name { get; set; } public string Email { get; set; } public bool IsMarried { get; set; } } $vbLabelText $csharpLabel 例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 // 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 $vbLabelText $csharpLabel サンプル画像 例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(); // 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(); $vbLabelText $csharpLabel 上記のコードはカスタムプロパティを持つ新しい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(); // Create a list of 10 Person objects with default values using NBuilder var personList = Builder<Person> .CreateListOfSize(10) .Build(); $vbLabelText $csharpLabel サンプル画像 ここでは、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}"); } // 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}"); } $vbLabelText $csharpLabel 例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(); // 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(); $vbLabelText $csharpLabel これにより、各オブジェクトのデフォルト値が Name = "Kim"、Email = "abc@email.com"、IsMarried = false に上書きされた personList が作成されます。 例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(); // 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(); $vbLabelText $csharpLabel 例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(); // 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(); $vbLabelText $csharpLabel ここで、All() メソッドは、後続の操作がメモリ内に作成された 10 個の person オブジェクトすべてに適用されるようにします。 Do() メソッドは、各 Person オブジェクトに対して Action デリゲートを実行します。 この設定では、Id プロパティを 501 から順番に割り当て、同様に各人物に"Person 1"から"Person 10"まで順番に名前を付けます。 例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; } } 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; } } $vbLabelText $csharpLabel ここで、Person クラスには、IsMarried などのいくつかのプロパティがあり、PersonService には、指定された Person の電子メールを返すメソッド 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); } } 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); } } $vbLabelText $csharpLabel この単体テストでは、PersonService クラスの GetPersonEmail メソッドが、期待される電子メール"Tom@email.com"を含む Person オブジェクトの電子メール アドレスを正しく返すことを確認します。 Arrange-Act-Assertパターンを使用してテストデータを設定し、メソッドを実行し、その後、実際の結果が期待される結果と一致していることを確認します。 NBuilderとIronPDFの統合 IronPDFについて学ぶは.NETアプリケーション内でHTMLからPDFを作成するために設計された強力なC#ライブラリです。 その直感的なAPIを通じて、開発者は請求書、レポート、インタラクティブなフォームを生成するかどうかに関係なく、自分のプロジェクトにシームレスにPDF機能を統合できます。 IronPDFのインストール NuGetパッケージ管理コンソールを開き、次のコマンドを実行します。 Install-Package IronPdf 5つのPersonオブジェクトのリストを生成する // Generating instances of the Person class with NBuilder var people = Builder<Person>.CreateListOfSize(5).Build(); // Generating instances of the Person class with NBuilder var people = Builder<Person>.CreateListOfSize(5).Build(); $vbLabelText $csharpLabel 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>"; } // 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>"; } $vbLabelText $csharpLabel IronPdf.License.LicenseKey は、 IronPDFの機能を有効にするために特定のライセンス キーで設定されます。 HTML コンテンツは、people リストを反復処理し、各 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"); // Rendering HTML content into a PDF document using IronPDF var renderer = new ChromePdfRenderer(); var pdfDoc = renderer.RenderHtmlAsPdf(htmlContent); pdfDoc.SaveAs("PersonList.pdf"); $vbLabelText $csharpLabel ChromePdfRendererはインスタンス化され、htmlContent に保存されている HTML コンテンツを PDF ドキュメントにレンダリングします。 結果のPDFドキュメントは"PersonList.pdf"としてファイルシステムに保存されます。 出力 以下はIronPDFによって生成されたPersonListの出力です。 デフォルト値を持つ5人が含まれています。 結論 結論として、NBuilderは.NETでのテストデータ生成のための強力で柔軟なツールであり、複雑なオブジェクトグラフの作成を合理化し、テストプロセスの効率を向上させます。 IronPDFと統合することで、開発者はプロジェクトにとって価値があると感じる人々のために、PDF生成機能をアプリケーションに簡単に拡張できます。 NBuilderとIronPDFを組み合わせることで、開発ワークフローが大幅に向上し、テストとドキュメント生成がシームレスかつ効率的になります。 よくある質問 NBuilder を使用して .NET でテスト データを生成する方法は? NBuilder は、開発者が複雑なオブジェクト グラフとテスト データを簡単に生成できる流暢なインターフェースを提供します。 CreateNew() や CreateListOfSize() などのメソッドを使用して、デフォルトまたはカスタム値を持つ単一オブジェクトまたはオブジェクトのリストを生成できます。 .NET プロジェクトで NBuilder をインストールするにはどうすればよいですか? NBuilder をインストールするには、NuGet パッケージ マネージャー コンソールで次のコマンドを使用できます: Install-Package NBuilder。 これにより、必要な依存関係とともに NBuilder がダウンロードおよびインストールされます。 NBuilder はランダムデータと連続データの両方を生成するために使用できますか? はい、NBuilder はランダムデータと連続データの両方の生成をサポートしています。 With() などのメソッドを使用してオブジェクト プロパティをランダム値でカスタマイズしたり、Do() を使用してプロパティを順次設定したりすることができます。 NBuilder を IronPDF と統合することで得られる利益は何ですか? NBuilder と IronPDF を統合すると、開発者は複雑なテストデータを作成し、それを PDF として出力できます。 これにより、テストデータから動的に PDF を生成することで .NET アプリケーションを強化し、開発ワークフローを合理化することができます。 NBuilder は単体テストでどのように支援しますか? NBuilder は、開発者が現実的なテストデータを迅速に生成できるようにすることで、単体テストにおいて価値を発揮します。 複雑なオブジェクト グラフを使用したテスト シナリオのセットアップを簡素化し、テストをより保守しやすく、効果的にします。 NBuilder で流暢なインターフェースを使用する利点は何ですか? NBuilder の流暢なインターフェースにより、開発者は読みやすく簡潔な方法で複雑なオブジェクト グラフを作成するためのメソッド呼び出しをチェーン化できます。これにより、コードの明確性が向上し、テスト データ生成時の定型コードが削減されます。 NBuilder を使用してオブジェクトのリストを作成するにはどうすればよいですか? NBuilder の CreateListOfSize() メソッドを使用してオブジェクトのリストを作成できます。 たとえば、Builder.CreateListOfSize(10).Build() は、10 の Person オブジェクトのリストを生成します。 NBuilder の使用に関するトラブルシューティングのヒントを教えてください。 NBuilder が NuGet 経由で正しくインストールされ、プロジェクト参照が最新であることを確認してください。 問題が発生した場合は、NBuilder GitHub リポジトリまたはコミュニティ フォーラムを確認すると、有益な洞察や解決策が得られる場合があります。 Jacob Mellor 今すぐエンジニアリングチームとチャット 最高技術責任者(CTO) ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。 関連する記事 更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む 更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む 更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む Refit C#(開発者向けの動作方法)C# TryParse(開発者向けの動...
更新日 2026年2月20日 CLIの簡素化と.NETの橋渡し:Curl DotNetとIronPDFを使う Jacob Mellorは、.NETエコシステムにcURLの親しみやすさをもたらすために作成されたライブラリ、CurlDotNetでこのギャップを埋めました。 詳しく読む
更新日 2025年12月20日 RandomNumberGenerator C# RandomNumberGenerator C#クラスを使用すると、PDF生成および編集プロジェクトを次のレベルに引き上げることができます 詳しく読む
更新日 2025年12月20日 C# String Equals(開発者向けの仕組み) 強力なPDFライブラリであるIronPDFと組み合わせることで、switchパターンマッチングは、ドキュメント処理のためのよりスマートでクリーンなロジックを構築できます 詳しく読む