【awesome-dotnet-core-learning】(3)-Bogus-假数据生成器
【awesome-dotnet-core-learning】(3)-Bogus-假数据生成器
简介
Bogus一个简单而强大的假数据生成器,用于C#,F#和VB.NET.从著名的faker.js移植过来.
在测试或者需要一些虚拟的数据时,Bogus就可以派上用场了.这是一个移植自faker.js的一个.NET的库,帮助你快速生成看起来有意义的假数据.该项目已经发展很长时间了,在很多有名的项目中都有使用.
特点
- 简单而又强大的数据生成
- 内置多种假数据集(用户名,公司名,邮箱地址,地址等)
- 假数据支持本地化(如中文,日文,韩文等)
- 多种API语法:流式,非流式
- 庞大而活跃的社区
快速上手
以下示例演示了用Bogus生成一个假的用户信息例子.该用户包含以下属性:
- 名字
- 年龄
- 性别
- 公司
- 电话
-
创建一个.NET Core的命令行应用程序(详细步骤略)
-
使用Nuget安装Bogus:
Install-Package Bogus
-
为了输出生成的用户的信息,我们再安装著名的Json.Net:
Install-Package Newtonsoft.Json
-
在
Program.cs
中,我们先创建User的类定义: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
-
生成数据
// 生成测试用户 var person = fakerPerson.Generate();
-
使用Json.Net输出数据
// 输出测试用户数据 string json = JsonConvert.SerializeObject(person, Formatting.Indented); Console.WriteLine(json);
输出结果:
{ "Name": "谢 擎宇", "Age": 39, "Gender": 0, "Company": "展鹏, 智宸 and 思", "Phone": "13691393533" }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?