紹介


Faker.Net は .NET / C# 向けのオープンソース擬似テストデータ生成ライブラリです。RubyのFakerエコシステムを参考に作られており、開発・デバッグ時、データベース初期化、ユニットテストで大規模な模擬データが不足する課題を解決します。

プロジェクトURL:https://github.com/jonwingfield/Faker.Net

業務に近い各種ダミーデータを素早く生成できます。主なデータ種別:

  • 個人情報:氏名、性別、電話番号、メールアドレス、身分証番号
  • 地理情報:都道府県、詳細住所、郵便番号
  • 業務データ:会社名、役職、テキストサンプル、日時
  • ネットワーク情報:IPアドレス、URL、ユーザー名

手入力せずに、氏名や性別、連絡先の異なるレコードを数百件まとめてユーザーテーブルへ登録できます。

NuGetパッケージ

Install-Package Faker.NetCode language: CSS (css)

またはCLIから

dotnet add package Faker.NetCode language: CSS (css)

コード例

using Faker;

// フルネーム生成
string fullName = Name.FullName();
// 電話番号生成
string phone = Phone.Number();
// メールアドレス生成
string email = Internet.Email();
// 住所生成
string address = Address.FullAddress();Code language: JavaScript (javascript)

一括データ生成デモ

// ループでテストユーザーを10件作成
var userList = new List<User>();
for (int i = 0; i < 10; i++)
{
    userList.Add(new User()
    {
        Name = Name.FullName(),
        Phone = Phone.Number(),
        Email = Internet.Email(),
        Address = Address.FullAddress()
    });
}Code language: HTML, XML (xml)

ランダム氏名の生成

コンソールアプリのサンプル
static void Main(string[] args)
{
    // ランダムな英語名を100件出力
    for (int i = 0; i < 100; i++)
    {
        Console.WriteLine(Name.GetName());
    }
    Console.ReadKey();
}Code language: JavaScript (javascript)

実行例:Bonnie EichmannAdrien Crooks のような英語名が出力されます。一部には敬称(Miss、Mrs)や学位サフィックス(PhD、IV)が付く場合があります。

内部実装の解説

public static class Name
{
    public static string GetName()
    {
        // 0~9の乱数を取得
        switch (FakerRandom.Rand.Next(10))
        {
            // 10%:敬称+名+姓(Miss Deontae Mante)
            case 0: 
                return GetPrefix() + " " + GetFirstName() + " " + GetLastName();
            // 10%:名+姓+サフィックス(Haskell Morissette PhD)
            case 1: 
                return GetFirstName() + " " + GetLastName() + " " + GetSuffix();
            // 残り80%:名+姓の標準形式(Adrien Crooks)
            default: 
                return GetFirstName() + " " + GetLastName();
        }
    }

    // 内蔵配列からランダムに名前を選択
    public static string GetFirstName()
    {
        return FIRST_NAMES.Rand();
    }
}Code language: PHP (php)

紹介

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です