Bogus を使用して C# でシミュレートされたデータを作成する方法

little bottle
リリース: 2019-04-29 11:36:41
転載
3873 人が閲覧しました

Bogus、C# ベースのシンプルなデータ ジェネレーター。 Bogus を使用してシミュレーション データを生成するには、ルールを定義してデータを生成するだけで、とても簡単です。また、Bogus は固定データまたは変更データを生成できます。したがって、データを取得したら、それを必要な形式 (json、xml、データベース、またはテキスト ファイル) にシリアル化できます。

シミュレーション データの生成

シミュレーション データを生成するには、まずシミュレーション データに対応するエンティティ クラスを作成する必要があります。ここではコマンドラインプログラムを作成し、2 つのクラスを追加できます。

public class Customer
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Address { get; set; }
    public string City { get; set; }
    public string Country { get; set; }
    public string ZipCode { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public string ContactName { get; set; }
    public IEnumerable<Order> Orders { get; set; }
}
ログイン後にコピー
public class Order
{
    public Guid Id { get; set; }
    public DateTime Date { get; set; }
    public Decimal OrderValue { get; set; }
    public bool Shipped { get; set; }
}
ログイン後にコピー

上記の 2 つのエンティティ クラスを作成した後、ウェアハウスを追加してシミュレートされたデータを取得できます。 Bogus を使用するには、Nuget を使用してプロジェクトに Bogus ライブラリを追加します。

Install-Package Bogus

関連チュートリアル: C# ビデオ チュートリアル

次に、ウェアハウジング クラスを追加します。データ。ここでは、SampleCustomerRepository クラスを追加し、次のメソッドを追加します。

public IEnumerable<Customer> GetCustomers()
{
    Randomizer.Seed = new Random(123456);
    var ordergenerator = new Faker<Order>()
        .RuleFor(o => o.Id, Guid.NewGuid)
        .RuleFor(o => o.Date, f => f.Date.Past(3))
        .RuleFor(o => o.OrderValue, f => f.Finance.Amount(0, 10000))
        .RuleFor(o => o.Shipped, f => f.Random.Bool(0.9f));
    var customerGenerator = new Faker<Customer>()
        .RuleFor(c => c.Id, Guid.NewGuid())
        .RuleFor(c => c.Name, f => f.Company.CompanyName())
        .RuleFor(c => c.Address, f => f.Address.FullAddress())
        .RuleFor(c => c.City, f => f.Address.City())
        .RuleFor(c => c.Country, f => f.Address.Country())
        .RuleFor(c => c.ZipCode, f => f.Address.ZipCode())
        .RuleFor(c => c.Phone, f => f.Phone.PhoneNumber())
        .RuleFor(c => c.Email, f => f.Internet.Email())
        .RuleFor(c => c.ContactName, (f, c) => f.Name.FullName())
        .RuleFor(c => c.Orders, f => ordergenerator.Generate(f.Random.Number(10)).ToList());
    return customerGenerator.Generate(100);
}
ログイン後にコピー

コードの 3 行目では、Randomizer.Seed プロパティに固定ランダム シードを指定しているため、生成されるデータは毎回同じになります。毎回固定データを生成したくない場合は、このコード行を削除できます。

ここでは、注文データと顧客データの生成ルールを定義し、Generate メソッドを呼び出してシミュレーション データを生成します。それはとても簡単です。

上記のとおり、Bogus はデータを生成するための多くのクラスを提供しています。たとえば、Company クラスを使用して、会社名などの会社シミュレーション データを生成できます。生成されたこれらのデータは、プログラムのシミュレーション データとして使用できます。これらのデータには 3 つの使用シナリオがあります。

  • 単体テスト用のシミュレーション テスト データ
  • 設計フェーズ用のシミュレーション データ
  • プロトタイプのシミュレーションデータ
##しかし、さらに多くの使用シナリオが見つかると思います。

ここでこれらのデータを使用するには、次のコードを

Main メソッドに追加します。

static void Main(string[] args)
{
    var repository = new SampleCustomerRepository();
    var customers = repository.GetCustomers();
    Console.WriteLine(JsonConvert.SerializeObject(customers, 
        Formatting.Indented));
}
ログイン後にコピー
ここではシミュレーション データを Json 文字列に変換します。

Newtonsoft.Json ライブラリへの参照を追加する必要があります。プログラムを実行すると、次の結果が得られます。

Bogus を使用して C# でシミュレートされたデータを作成する方法

#上記のとおり、プログラムは各顧客のすべての注文情報を含む顧客データ セットを生成します。

以上がBogus を使用して C# でシミュレートされたデータを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
c c#
ソース:cnblogs.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート