ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
NBビルダーは .NET ライブラリ テストデータ作成の簡素化 開発者は、その流暢なインターフェイスを使って、複雑なオブジェクト・グラフを簡単に作成することができる。 柔軟性、効率性、一般的なテストフレームワークとのシームレスな統合を提供します。 この記事では、NBuilderの機能、インストール方法、そして実用的なコード例でその機能を紹介する。
NBuilderは、テストやモッキングを目的としたオブジェクトの作成を簡素化するために設計された.NETのC#オープンソースライブラリです。 これにより開発者は、さまざまなデータ型に基づくデフォルトまたはカスタム指定の入力を持つオブジェクトを素早く生成できる。
特に単体テスト、機能テスト、統合テストに役立つ。
.NETの組み込みデータ型や複雑なオブジェクトをテストするのに不可欠なパッケージのひとつである。
ランダムデータの生成に使用される。 このオープンソースプロジェクトに貢献することができる。
NuGetパッケージ・マネージャ・コンソールでNBuilderをインストールするには、以下のコマンドを使用します。
Install-Package Nbuilder
Install-Package Nbuilder
IRON VB CONVERTER ERROR developers@ironsoftware.com
上記のコマンドは、NBuilderをその依存関係すべてとともにインストールする。
NBuilderは、その場でオブジェクトを作成する流暢な方法を提供する。 オブジェクトを作成する簡単な例から始めよう。
Personモデルクラスのソースコードです。
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; }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
var person = Builder<Person>
.CreateNew()
.Build();
//person = { Id = 1, Name = Name1, Email = Email1 , IsMarried = false }
var person = Builder<Person>
.CreateNew()
.Build();
//person = { Id = 1, Name = Name1, Email = Email1 , IsMarried = false }
IRON VB CONVERTER ERROR developers@ironsoftware.com
以下は、NBuilder を使用して、カスタム・プロパティを持つ Person オブジェクトを作成および構成する方法の例です:
var customPersonBuilder = Builder<Person>.CreateNew()
.With(p => p.Name = "Tom")
.With(p => p.Email = "Tom@email.com");
var objTom = customPersonBuilder.Build();
var customPersonBuilder = Builder<Person>.CreateNew()
.With(p => p.Name = "Tom")
.With(p => p.Email = "Tom@email.com");
var objTom = customPersonBuilder.Build();
IRON VB CONVERTER ERROR developers@ironsoftware.com
上記のコードでは、カスタムプロパティを持つ新しい Person オブジェクトが作成されます。 Person オブジェクトの customPersonBuilder を初期化し、Name を "Tom"、Email を "Tom@email.com" に設定します。 最後に、オブジェクトを構築し、objTomに代入する。
var personList = Builder<Person>
.CreateListOfSize(10)
.Build();
var personList = Builder<Person>
.CreateListOfSize(10)
.Build();
IRON VB CONVERTER ERROR developers@ironsoftware.com
ここでpersonListは10個のオブジェクトをデフォルト値で持ち、それらを表示する。
var personList = Builder<Person>
.CreateListOfSize(10)
.Build();
// Here it creates the 10 objects of Person in personList
foreach (var person in personList)
{
Console.WriteLine($"{person.Id}, {person.Name}, {person.Email}, {person.IsMarried}, ");
}
var personList = Builder<Person>
.CreateListOfSize(10)
.Build();
// Here it creates the 10 objects of Person in personList
foreach (var person in personList)
{
Console.WriteLine($"{person.Id}, {person.Name}, {person.Email}, {person.IsMarried}, ");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
時には、作成されるオブジェクトをカスタマイズする必要があるかもしれません。 でオブジェクトの値をカスタマイズすることもできます。() メソッド。
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();
// Output:
// Id: 1, Name: Name1, Email: Email1, IsMarried False,
// Id : 2, Name: Name2, Email: Email2, IsMarried True,
// Id : 3, Name: Name3, Email: Email3, IsMarried False,
// Id : 4, Name: Name4, Email: Email4, IsMarried True,
// Id : 5, Name: Name5, Email: Email5, IsMarried False,
// Id : 6, Name: Name6, Email: Email6, IsMarried True,
// Id : 7, Name: Name7, Email: Email7, IsMarried False,
// Id : 8, Name: Name8, Email: Email8, IsMarried True,
// Id : 9, Name: Name9, Email: Email9, IsMarried False,
// Id : 10, Name: Name10, Email: Email10, IsMarried True,
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();
// Output:
// Id: 1, Name: Name1, Email: Email1, IsMarried False,
// Id : 2, Name: Name2, Email: Email2, IsMarried True,
// Id : 3, Name: Name3, Email: Email3, IsMarried False,
// Id : 4, Name: Name4, Email: Email4, IsMarried True,
// Id : 5, Name: Name5, Email: Email5, IsMarried False,
// Id : 6, Name: Name6, Email: Email6, IsMarried True,
// Id : 7, Name: Name7, Email: Email7, IsMarried False,
// Id : 8, Name: Name8, Email: Email8, IsMarried True,
// Id : 9, Name: Name9, Email: Email9, IsMarried False,
// Id : 10, Name: Name10, Email: Email10, IsMarried True,
IRON VB CONVERTER ERROR developers@ironsoftware.com
これは、デフォルト値が Name = "Kim"、Email = "abc@email.com"、IsMarried = false の personList を作成します。
パーソンリストのリアルなデータ値を取得するには、Faker Library .NET を使用します。
var personList = Builder<Person>
.CreateListOfSize(10)
.All()
.With(p => p.Name = Faker.Name.FullName())
.With(p => p.Id = Faker.RandomNumber.Next(20, 60))
.Build();
var personList = Builder<Person>
.CreateListOfSize(10)
.All()
.With(p => p.Name = Faker.Name.FullName())
.With(p => p.Id = Faker.RandomNumber.Next(20, 60))
.Build();
IRON VB CONVERTER ERROR developers@ironsoftware.com
例 6:連続データを含む人物オブジェクト・リストの作成」。
シーケンシャルなデータを持つオブジェクトを生成する必要がある場合がある。 .NET では、Do メソッドを使ってこれを容易にします。
var personList = Builder<Person>.CreateListOfSize(10)
.All()
.Do((p, i) => p.Id = 501 + i)
.Do((p, i) => p.Name = $"Person {i + 1}")
.Build();
var personList = Builder<Person>.CreateListOfSize(10)
.All()
.Do((p, i) => p.Id = 501 + i)
.Do((p, i) => p.Name = $"Person {i + 1}")
.Build();
IRON VB CONVERTER ERROR developers@ironsoftware.com
ここでオール() メソッドは、10人の人物オブジェクトすべてに後続の操作を適用し、メモリ内にリストを作成した。 ザ・ドゥ() メソッドは、各 Person オブジェクトに対して Action Delegate を実行するために使用されます。
ここでは、501で指定された各人のIdプロパティを設定する。ラムダ式 (p, i) 2つのパラメータpは人物、iはそのオブジェクトのインデックスである。 (0 から 9) リストにはそれぞれ10個のオブジェクトがある。 Id プロパティに i 値を追加することで、プロパティは順次 501 から 510 に設定され、Name プロパティは Person 1 から Person 10 に設定されます。
例7:Xunitを使ったNBuilderとユニットテスト
.NETのNBuilderは、開発者がテストのために現実的で多様なデータセットを生成する必要があるテスト環境で、かなり使用されています。 開発者がラムダ式やデリゲート関数を使用してカスタム初期化ロジックを定義できる複雑なオブジェクトにより、テストが簡単で保守しやすくなります。
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;
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
ここで、Person クラスには以下のプロパティがあり、PersonService には 1 つのパブリック・メソッド GetPersonEmail しかありません。() を返します。
public class PersonTests
{
[Fact]
public void GetPersonEmail_ReturnCorrectEmail()
{
// Arrange
var service = new PersonService();
string expectedEmail = "Tom@email.com";
var person = Builder<Person>.CreateNew()
.With(p => p.Name = "Tom")
.With(p => p.Email "Tom@email.com")
.Build();
// Act
var actualEmail = service.GetPersonEmailById(person);
// Assert
Assert.Equal(actualEmail,expectedEmail);
}
}
public class PersonTests
{
[Fact]
public void GetPersonEmail_ReturnCorrectEmail()
{
// Arrange
var service = new PersonService();
string expectedEmail = "Tom@email.com";
var person = Builder<Person>.CreateNew()
.With(p => p.Name = "Tom")
.With(p => p.Email "Tom@email.com")
.Build();
// Act
var actualEmail = service.GetPersonEmailById(person);
// Assert
Assert.Equal(actualEmail,expectedEmail);
}
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
このユニット・テストでは、PersonService クラスの GetPersonEmailById メソッドが Person オブジェクトの電子メール・アドレスを、期待される電子メール "Tom@email.com" と共に正しく返すことを検証します。 Arrange-Act-Assertパターンを使ってテストデータをセットアップし、メソッドを実行し、実際の結果が期待した結果と一致するかをチェックする。
IronPDFのために設計された強力なC#ライブラリです。 作成, 編集、および PDF処理 .NET アプリケーション内の文書。 その直感的なAPIにより、開発者は、請求書、レポート、対話型フォームの生成のいずれであっても、PDF機能をプロジェクトにシームレスに統合することができます。
NuGet Package Managerコンソールを開き、以下のコマンドを実行する:
Install-Package IronPdf
Install-Package IronPdf
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Install-Package IronPdf
// 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();
IRON VB CONVERTER ERROR developers@ironsoftware.com
このコードはIronPDFライセンスキーを設定し、PersonオブジェクトのリストからHTMLコンテンツを生成します。
IronPdf.License.LicenseKey = "Your-License-Key";
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 = "Your-License-Key";
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>";
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
IronPDF.License.LicenseKeyにはIronPDFの機能を有効にするためのライセンスキーが設定されます。
HTMLコンテンツは、Personオブジェクトの詳細を追加しながら、Personリストを繰り返し処理することで動的に作成されます。 (Id、Name、Email、IsMarried) をHTML構造に追加する。
このコードはIronPDFのChromePdfRendererを使ってHTMLコンテンツをPDFドキュメントに変換します。
var renderer = new ChromePdfRenderer();
var pdfDoc = renderer.RenderHtmlAsPdf(htmlContent);
pdfDoc.SaveAs("PersonList.pdf");
var renderer = new ChromePdfRenderer();
var pdfDoc = renderer.RenderHtmlAsPdf(htmlContent);
pdfDoc.SaveAs("PersonList.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
ChromePdfRendererは、htmlContentに格納されているHTMLコンテンツをPDFドキュメントにレンダリングするためにインスタンス化されます。 出来上がったPDF文書はファイルシステムに「PersonList.pdf」という名前で保存されます。
以下はIronPDFによって生成されたPersonListの出力です。 それぞれデフォルト値で、5人の人物が含まれている。
結論として、NBuilderは.NETでテストデータを生成し、複雑なオブジェクトグラフの作成を効率化し、テストプロセスの効率を高めるための堅牢で柔軟なツールです。 IronPDFと統合することで、開発者は簡単にアプリケーションを拡張することができます。 PDF生成 自分のプロジェクトに価値を見出す人のために。 NBuilderとIronPDFを組み合わせることで、開発ワークフローを大幅に強化し、テストと文書生成をシームレスかつ効率的に行うことができます。
9つの .NET API製品 オフィス文書用