C# 使用 Bogus 快速產生假資料示範

安裝

先使用 NuGet 安裝 Bogus 套件,或是使用 .NET CLI 執行以下指令安裝
	
dotnet add package Bogus
    

最簡單取得內容示範

    
var faker = new Faker();

// 隨機取得日期
DateTime dateTime = faker.Date.Between(new DateTime(2021, 1, 1), new DateTime(2021, 12, 31));
Console.WriteLine(dateTime.ToString("yyyy/MM/dd HH:mm:ss")); // 2021/02/11 02:48:34

// 隨機取得陣列中的一個元素
var fruit = new[] {"A1", "A2", "A3", "A4", "A5"};
Console.WriteLine(faker.PickRandom(fruit)); // A3

// 隨機取得 1 ~ 100 中的數字
int number = faker.Random.Number(1, 100);
Console.WriteLine(number); // 42

// 隨機取得大頭貼(圖片網址)
string? avatar = faker.Internet.Avatar();
Console.WriteLine(avatar); // https://cloudflare-ipfs.com/ipfs/Qmd3W5DuhgHirLHGVixi6V76LhCkZUz6pnFt5AJBiyvHye/avatar/820.jpg
    

產生測試物件

    
/// <summary>
/// 測試用的使用者物件
/// </summary>
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }
}
    

可以選擇是否要指定亂數種子,相同亂數種子產生的內容會相同
    
Randomizer.Seed = new Random(123);

var users = new Faker<User>()
    .RuleFor(x => x.Id, f => f.IndexFaker) // 依照順序產生,從 0 開始
    .RuleFor(x => x.Name, f => f.Name.FullName()) // 產生人名
    .RuleFor(x => x.Email, f => f.Internet.Email()); // 產生 email

// 產生 10 筆
foreach (var user in users.Generate(10))
{
    Console.WriteLine($"{user.Id} {user.Name} {user.Email}");
}

/*
0 Amalia Auer Cleo.Murray18@gmail.com
1 Jailyn Block Kennith94@hotmail.com
2 Carolanne Bailey Abby_Romaguera@hotmail.com
3 Stefan Lebsack Laurine.Stehr59@gmail.com
4 Augustus Von Gwen_Schmeler49@gmail.com
5 Clay Rosenbaum Christina47@gmail.com
6 Maxine Crist Karolann.Senger74@gmail.com
7 Anais Bradtke Bill3@yahoo.com
8 Anastacio Rippin Santina.Wyman84@gmail.com
9 Cornelius Altenwerth Justus64@gmail.com
*/
    



參考資料:
Github - bchavez/Bogus

留言