zoukankan      html  css  js  c++  java
  • 【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生成一个假的用户信息例子.该用户包含以下属性:

    • 名字
    • 年龄
    • 性别
    • 公司
    • 电话
    1. 创建一个.NET Core的命令行应用程序(详细步骤略)

    2. 使用Nuget安装Bogus:

      Install-Package Bogus
      
    3. 为了输出生成的用户的信息,我们再安装著名的Json.Net:

      Install-Package Newtonsoft.Json
      
    4. 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; }
      }
      
    5. 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

    6. 生成数据

      // 生成测试用户
      var person = fakerPerson.Generate();
      
    7. 使用Json.Net输出数据

      // 输出测试用户数据
      string json = JsonConvert.SerializeObject(person, Formatting.Indented);
      Console.WriteLine(json);
      

      输出结果:

      {
          "Name": "谢 擎宇",
          "Age": 39,
          "Gender": 0,
          "Company": "展鹏, 智宸 and 思",
          "Phone": "13691393533"
      }
      

    类似库

  • 相关阅读:
    gitlab 简介
    gitlab安装配置(Ubuntu18和CentOS7)
    CentOS7 安装 vsftpd 服务
    CentOS7.5 系统最小化安装与初始化配置
    ubuntu1604系统初始化
    关于CGI和FastCGI的理解
    CentOS7安装OpenStack(Rocky版)-09.安装Cinder存储服务组件(控制节点)
    CentOS7安装OpenStack(Rocky版)-08.启动一个虚拟机实例
    CentOS7安装OpenStack(Rocky版)-07.安装horizon服务组件(控制节点dashboard)
    CentOS7安装OpenStack(Rocky版)-06.安装Neutron网络服务(控制节点)
  • 原文地址:https://www.cnblogs.com/waku/p/10547300.html
Copyright © 2011-2022 走看看