在开发过程中,经常因为需要使用一些测试数据,查看 UI 呈现感到苦恼,通过 Faker.Net 类自定义产生随机数据。使用教程如下:
1、安装 Faker.Net.dll
2、直接使用 Faker 库。 地址类:
1 2 3 Console.WriteLine(Faker.Address.City()); Console.WriteLine(Faker.Address.City()); Console.WriteLine(Faker.Address.City());
-—地址类—- Collinshaven Port Helgamouth Charlesbury
随机 bool 类型类:
1 2 3 Console.WriteLine(Faker.Boolean.Random()); Console.WriteLine(Faker.Boolean.Random()); Console.WriteLine(Faker.Boolean.Random());
-—随机 bool 类型类—- True True False
公司类:
1 2 3 Console.WriteLine(Faker.Company.Name()); Console.WriteLine(Faker.Company.Name()); Console.WriteLine(Faker.Company.Name());
-—公司类—- Hoppe LLC Kshlerin Group Pfeffer, Lesch and Purdy
分割符类:
1 2 3 Console.WriteLine(Faker.Config.Separator); Console.WriteLine(Faker.Config.Separator); Console.WriteLine(Faker.Config.Separator);
-—分割符类—- ; ; ;
国家类:
1 2 3 4 5 6 Console.WriteLine(Faker.Country.Name()); Console.WriteLine(Faker.Country.Name()); Console.WriteLine(Faker.Country.Name()); Console.WriteLine(Faker.Country.Name()); Console.WriteLine(Faker.Country.Name()); Console.WriteLine(Faker.Country.Name());
-—国家类—- Saint Barthélemy El Salvador Ireland Congo Swaziland Central African Republic
货币类:
1 2 3 Console.WriteLine(Faker.Currency.Name()); Console.WriteLine(Faker.Currency.Name()); Console.WriteLine(Faker.Currency.Name());
-—货币类—- Belgian Franc RINET Funds Code French Franc
枚举类:
1 2 3 4 5 6 7 8 9 10 11 enum Letter { A, B, C, D } Console.WriteLine(Faker.Enum.Random<Letter>()); Console.WriteLine(Faker.Enum.Random<Letter>()); Console.WriteLine(Faker.Enum.Random<Letter>());
-—枚举类—- C B C
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 Console.WriteLine(); Console.WriteLine("----金融类----"); Console.WriteLine(Faker.Finance.Coupon()); Console.WriteLine(Faker.Finance.Coupon()); Console.WriteLine(Faker.Finance.Coupon()); Console.WriteLine(); Console.WriteLine("----身份类----"); Console.WriteLine(Faker.Identification.SocialSecurityNumber()); Console.WriteLine(Faker.Identification.SocialSecurityNumber()); Console.WriteLine(Faker.Identification.SocialSecurityNumber()); Console.WriteLine(); Console.WriteLine("----网络数据类----"); Console.WriteLine(Faker.Internet.Email()); Console.WriteLine(Faker.Internet.Email()); Console.WriteLine(Faker.Internet.Email()); Console.WriteLine(); Console.WriteLine("----文档类----"); Console.WriteLine(Faker.Lorem.Sentence()); Console.WriteLine(Faker.Lorem.Sentence()); Console.WriteLine(Faker.Lorem.Sentence()); Console.WriteLine(); Console.WriteLine("----名字类----"); Console.WriteLine(Faker.Name.FullName()); Console.WriteLine(Faker.Name.First()); Console.WriteLine(Faker.Name.Last()); Console.WriteLine(Faker.Name.Middle()); Console.WriteLine(); Console.WriteLine("----电话号码类----"); Console.WriteLine(Faker.Phone.Number()); Console.WriteLine(Faker.Phone.Number()); Console.WriteLine(Faker.Phone.Number()); Console.WriteLine(); Console.WriteLine("----随机数类----"); Console.WriteLine(Faker.RandomNumber.Next()); Console.WriteLine(Faker.RandomNumber.Next(100)); Console.WriteLine(Faker.RandomNumber.Next(1, 10)); Console.WriteLine(); Console.WriteLine("----不知道是什么----"); Console.WriteLine(Faker.UkHelper.CalculateNhsNumberChecksum("123456789")); Console.WriteLine(Faker.UkHelper.CalculateNhsNumberChecksum("162345679"));
-—金融类—- 2.743 8.55 9.044
-—身份类—- 403-60-4961 576-78-4053 577-93-5703
-—网络数据类—-katherine@schneiderzboncak.biz mekhi@johnstonokuneva.uk edwina.friesen@prosacco.name
-—文档类—- Occaecati ab libero similique totam dolor hic minus sint. Aspernatur sit facere iure deleniti nobis consequuntur omnis ducimus. Repellat voluptatibus quisquam consequatur non in odit officia.
-—名字类—- Prof. Melvina Aida Toy Sibyl Haag Dave
-—电话号码类—- 1-174-462-6174 1-334-213-6931 1-103-701-7518 x66683
-—随机数类—- 1613853846 15 9
-—不知道是什么—- 10 7
3、根据自己的数据模型创建一个 Faker 对象 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class Person { public string Name { get; set; } public int Age { get; set; } public string CardID { get; set; } public void FakerObject() { this.Name = Faker.Name.FullName(); this.Age = Faker.RandomNumber.Next(12, 99); this.Name = Faker.Identification.SocialSecurityNumber(); } } // 测试 List<Person> persons = new List<Person>(); for (int i = 0; i < 20; i++) { Person p = new Person(); p.FakerObject(); persons.Add(p); } foreach (var item in persons) { Console.WriteLine($"姓名:{item.Name}, 年龄:{item.Age}, 身份证号:{item.CardID}"); }
姓名:Miss Francis Funk, 年龄:27, 身份证号:073-34-9241 姓名:Dr. Alice Conroy Sr., 年龄:70, 身份证号:541-72-7408 姓名:Mrs. Emmalee Leuschke, 年龄:45, 身份证号:524-79-1866 姓名:Bailey Wuckert, 年龄:32, 身份证号:451-54-7597 姓名:Chris Dickinson, 年龄:79, 身份证号:498-92-6052 姓名:Sibyl Dewayne Champlin DVM, 年龄:96, 身份证号:558-91-5531 姓名:Brandyn Stehr, 年龄:48, 身份证号:286-10-5024 姓名:Amara Lewis Schoen II, 年龄:54, 身份证号:265-81-0090 姓名:Mrs. Lyda Halvorson, 年龄:22, 身份证号:529-80-0532 姓名:Royce Collins, 年龄:74, 身份证号:239-48-3497 姓名:Peter Legros, 年龄:34, 身份证号:455-79-5641 姓名:Lenny Thompson, 年龄:26, 身份证号:255-91-9333 姓名:Rocio Hayes, 年龄:61, 身份证号:606-52-4069 姓名:Dahlia Feil Sr., 年龄:81, 身份证号:076-35-4128 姓名:Brett Dietrich Jr., 年龄:94, 身份证号:092-92-5056 姓名:Dr. Baby Stanton, 年龄:66, 身份证号:334-23-7926 姓名:Mrs. Meredith Powlowski DVM, 年龄:79, 身份证号:630-99-6807 姓名:Miss Devan Price, 年龄:98, 身份证号:423-21-6096 姓名:Erica Kub, 年龄:50, 身份证号:284-81-6828 姓名:Mrs. Bernardo Stoltenberg, 年龄:62, 身份证号:274-93-7893
源码链接