【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"
}
类似库
【awesome-dotnet-core-learning】(3)-Bogus-假数据生成器的更多相关文章
- MongoDB via Dotnet Core数据映射详解
用好数据映射,MongoDB via Dotnet Core开发变会成一件超级快乐的事. 一.前言 MongoDB这几年已经成为NoSQL的头部数据库. 由于MongoDB free schema ...
- 数据生成器Bogus的使用以及基于声明的扩展
引言 最近在整理代码,发现以前写的一个数据填充器写了一半没实现,而偏偏这段时间就要用到类似的功能,所以正好实现下. 目标 这个工具的目标是能够在项目初期快速搭建一个"数据提供器", ...
- dotnet core 使用 MongoDB 进行高性能Nosql数据库操作
好久没有写过Blog, 每天看着开源的Java社区流口水, 心里满不是滋味. 终于等到了今年六月份 dotnet core 的正式发布, 看着dotnet 社区也一步一步走向繁荣, 一片蒸蒸日上的大好 ...
- dotnet core开发体验之开始MVC
开始 在上一篇文章:dotnet core多平台开发体验 ,体验了一把dotnet core 之后,现在想对之前做的例子进行改造,想看看加上mvc框架是一种什么样的体验,于是我就要开始诞生今天的这篇文 ...
- dotnet core多平台开发体验
前言 随着net core rc2的发布,园子里面关于net core的入门文章也也多了起来,但是大多数都是在一个平台上面来写几个简单的例子,或者是在解释代码本身,并没有体现说在一个平台上面创建一个项 ...
- 基于DotNet Core的RPC框架(一) DotBPE.RPC快速开始
0x00 简介 DotBPE.RPC是一款基于dotnet core编写的RPC框架,而它的爸爸DotBPE,目标是实现一个开箱即用的微服务框架,但是它还差点意思,还仅仅在构思和尝试的阶段.但不管怎么 ...
- 将app接口服务器改为dotnet core承载
昨天我的一个 app 的接口服务器挂掉了,国外的小鸡意外的翻车,连同程序和数据一起,猝不及防.我的服务端程序是 asp.net mvc ,小鸡是 256 M 的内存跑不了 windows 系统,装的 ...
- spring cloud+dotnet core搭建微服务架构:Api网关(三)
前言 国庆假期,一直没有时间更新. 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud.文章下面有纯洁大神的spring cloud系列. 上一章最后说了,因为服务是不对外暴露的,所 ...
- spring cloud+dotnet core搭建微服务架构:配置中心(四)
前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...
随机推荐
- springboot restful接口服务异常处理
一.spring boot中默认的错误处理机制 二.自定义的异常处理
- 九校联考_24OI——餐馆restaurant
凉心模拟D1T1--最简单的一道题 TAT 餐馆(restaurant) 题目背景 铜企鹅是企鹅餐馆的老板,他正在计划如何使得自己本年度收益增加. 题目描述 共有n 种食材,一份食材i 需要花ti 小 ...
- Linux配置ntp时间服务器(全)
时间服务器作用: 大数据产生与处理系统是各种计算设备集群的,计算设备将统一.同步的标准时间用于记录各种事件发生时序, 如E-MAIL信息.文件创建和访问时间.数据库处理时间等. 大数据系统内不同计算设 ...
- 【并发编程】IO模型
一.要点回顾 为了更好地了解IO模型,我们需要先回顾下几个概念:同步.异步.阻塞.非阻塞 同步: 一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行.就是在发出一个功能调用时,在没 ...
- Chapter3_操作符_逻辑操作符
逻辑操作符与(&&)或(||)非(^)能够对布尔类型的数据类型进行操作,并且生成布尔值,和关系操作符的产生的数据类型是一样的.需要注意的不多,有以下几点: (1)在需要使用string ...
- sql pivot(行转列) 和unpivot(列转行)的用法
1.PIVOT用法(行转列) select * from Table_Score as a pivot (sum(score) for a.name in ([语文],[数学],[外语],[文综],[ ...
- crontab定时时间解释
用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下: minute hour day mo ...
- 获取sql 时间时分秒
select DATE_FORMAT(now(),'%Y-%m-%d %T') from dual; 年月日时分秒 select DATE_FORMAT(now(),'%T') from dual; ...
- Zhu-Takaoka Two-dimensional Pattern Matching
Two dimensional pattern matching. Details may be added later.... Corresponding more work can be foun ...
- layui 富文本 图片上传 后端PHP接口
<!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/ ...