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 Eichmann、Adrien 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)
紹介
Next: Lorem ダミーテキスト生成