介紹


Faker.Net 是一套專給 .NET / C# 使用的開源模擬測試資料產生函式庫,靈感來自 Ruby 的 Faker 生態,主要用來解決開發除錯、資料庫初始化、單元測試時,缺少大量擬真測試資料的問題。

專案位址:https://github.com/jonwingfield/Faker.Net

可快速產生各種貼近真實場景的假資料,常見資料類型包含:

  • 個人資訊:姓名、性別、手機號碼、電子郵件、身分證字號
  • 地理資訊:縣市、完整地址、郵遞區號
  • 業務資料:公司名稱、職稱、文字摘要、日期時間
  • 網路資訊:IP位址、網址、使用者名稱

批次在人員測試資料表匯入上百筆,姓名、性別、聯絡方式都不重複的紀錄,不用手動逐筆輸入。

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)

介紹

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *