AutoFixture: C# でテストデータを自動的に作ってくれるライブラリの紹介
テストデータを手作業で全て作成している人はいませんか?そんなあなたにオススメなライブラリのご紹介です。
使用用途は主に Moq の戻りデータを自動生成したいときや、パラメーターを自動生成したいとき、他には Database のデータを自動生成したいときにも使えます。
Package Install
Visual Studio の Package Manager 画面か、 Command を使って Install できます。
Package Manager
Install-Package AutoFixture -Version 4.11.0
.NET CLI
dotnet add package AutoFixture --version 4.11.0
試しに使ってみる
モデルのテストデータを作ってみます。 MyModel を用意しました。
public class MyModel
{
public int Id { get; set; }
public string Name { get; set; }
public DateTimeOffset CreatedAt { get; set; }
public MyInnerModel MyInner { get; set; }
}
public class MyInnerModel
{
public string[] Notes { get; set; }
}
AutoFixture を使って MyModel を作ってみます。
[Fact]
public void MyModelTest()
{
var fixture = new Fixture();
var myModel = fixture.Create<MyModel>();
Assert.NotNull(myModel);
}
Breakpoint を設定して中身を見てみるとこんな感じで自動的に設定されています。
AutoFixture で出来ること
- 自動設定する値をカスタマイズ
- DataAnnotation を自動読み込み
- E.g. StringLength(3) が付与されている場合、自動的に 3 文字のデータが設定される。
- Entity Framework の小テーブルデータを自動作成
- きちんと外部キーの設定をしている場合のみ。
- 親テーブルを fixture.Create したあとに Add すれば子テーブルのデータも全部入る。
- 可能なら DB First (.edmx) より Code First を使ったほうがよいです。
リンク
Document: Cheat Sheet · AutoFixture/AutoFixture Wiki
NuGet Gallery: NuGet Gallery | AutoFixture 4.11.0
似たような機能を持つライブラリ
こっちも使ってみましたが、個人的には AutoFixture のほうが好きでした。
Author And Source
この問題について(AutoFixture: C# でテストデータを自動的に作ってくれるライブラリの紹介), 我々は、より多くの情報をここで見つけました https://qiita.com/KoKeCross/items/a5ddfb1eef647a2d4ef2著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .