Bogus一個簡單而強大的假數據生成器,用於C#,F#和VB.NET.從著名的faker.js移植過來.git
在測試或者須要一些虛擬的數據時,Bogus就能夠派上用場了.這是一個移植自faker.js的一個.NET的庫,幫助你快速生成看起來有意義的假數據.該項目已經發展很長時間了,在不少有名的項目中都有使用.github
如下示例演示了用Bogus生成一個假的用戶信息例子.該用戶包含如下屬性:json
使用Nuget安裝Bogus:c#
Install-Package Bogus
爲了輸出生成的用戶的信息,咱們再安裝著名的Json.Net:api
Install-Package Newtonsoft.Json
在Program.cs
中,咱們先建立User的類定義:dom
class User { /// <summary> /// 名字 /// </summary> public string Name { get; set; } /// <summary> /// 年齡 /// </summary> public int Age { get; set; } /// <summary> /// 性別 /// </summary> /// <remarks>這裏使用Bogus已經定義好的性別枚舉類型</remarks> public Name.Gender Gender { get; set; } /// <summary> /// 公司 /// </summary> public string Company { get; set; } /// <summary> /// 電話 /// </summary> public string Phone { get; set; } }
在Main
方法中,咱們使用Bogus提供的流式API爲User定義生成規則:測試
// 用戶數據生成規則 var fakerPerson = new Faker<User>("zh_CN") // 使用中文數據 .RuleFor(p => p.Name, f => f.Name.FullName()) // 隨機漢字名 .RuleFor(p => p.Age, f => f.Random.Number(1, 100)) // 隨機年齡(1-100歲) .RuleFor(p => p.Gender, f => f.PickRandom<Name.Gender>()) // 隨機性別 .RuleFor(p => p.Company, p => p.Company.CompanyName()) // 隨機公司名稱 .RuleFor(p => p.Phone, p => p.Phone.PhoneNumber("1##########")) // 隨機手機號 ;
能夠看到,Bogus內置了多種數據集,如姓名,公司和電話等,可方便的生成各類類型的假數據.更多的數據集可查閱文檔Bogus API Support命令行
生成數據code
// 生成測試用戶 var person = fakerPerson.Generate();
使用Json.Net輸出數據orm
// 輸出測試用戶數據 string json = JsonConvert.SerializeObject(person, Formatting.Indented); Console.WriteLine(json);
輸出結果:
{ "Name": "謝 擎宇", "Age": 39, "Gender": 0, "Company": "展鵬, 智宸 and 思", "Phone": "13691393533" }