Bogus

C#源码 2025-08-16

Bogus for .net:c#,f#和vb.net

项目描述

你好。我是您的主持人Brian Chavez (Twitter)。 Bogus是一个简单的假数据生成器,适用于C#f#vb.net.NET语言。 Bogus从根本上是faker.jsc#端口,受FluentValidation的语法糖的启发。

Bogus将帮助您为您的测试需求加载数据库,UI和应用程序。如果您喜欢Bogus Star the Reportory并向您的朋友展示! ?如果您发现Bogus有用,请考虑通过购买Bogus Premium许可证来支持该项目,从而为您提供额外的Bogus超级大国! ??您也可以在这里赞助该项目! ??

下载并安装

Nuget软件包Bogus

 Install-Package Bogus

最小要求: .NET标准1.3.NET标准2.0.NET框架4.0

使用Bogus的项目
  • Bitwarden无密码服务器[代码]
  • Elasticsearch .NET客户端(NEST) [代码]
  • Fulentvalidation [代码]
  • Microsoft Windows-XAML / Template10 [代码]
  • Microsoft学习 /云本地应用程序使用Microsoft Azure Cosmos DB [代码]
  • Microsoft Office开发人员
    • Office 365开发培训内容[代码]
    • 微软团队样本连接器[代码]
出现在
  • Amazon AWS .NET开源基金收件人 - 2024年10月1日
  • Microsoft'on .net live': Bogus的下一级EF核心数据播种 - 2024年4月15日
  • .NET冒险:与Brian Chavez建造Bogus - 2024年1月5日
  • 微软文档:将奥尔良部署到Azure App Service- 2022年5月5日
  • Microsoft文档:现代化WPF应用程序教程 - 2019年8月2日
  • Microsoft Build 2018:Azure提示和技巧 - 2018年5月8日
  • Nuget必须拥有:2017年前10个单元测试库
  • .NET Rocks播客:#BetterKnowphatFramework- 2017年3月16日2018年9月13日2020年5月7日
  • .NET工程博客:第1周的Nuget软件包。 - “本周.NET- 2015年12月8日”
博客文章
  • Nick Chapsas-使用Bogus [YouTube]在.NET中生成逼真的假数据
  • Jack Histon-如何在C#中创建Bogus数据
  • 克里斯托斯·马茨卡斯(Christos Matskas) - 使用虚假创建.net Bogus
  • 杰森·罗伯茨(Jason Roberts) - Bogus的寿命数据生成
  • 标记Timmings-使用Bogus自动生成测试数据
  • .NET核心生成测试数据
  • 史蒂夫·利(Steve Leigh) - 肮脏的假用户
  • Volkan Paksoy-使用Bogus生成测试数据
  • Alican demirtas- Bogus f#
  • Khalid Abuhakmeh- Bogus的种子实体框架核心
  • Sander Ten Brinke-将实体框架核心数据播种到一个Bogus的水平
加密小费罐!

用法

伟大的C#示例

Bogus.Extensions namespace. .RuleFor(o => o.LotNumber, f => f.Random.Int(0, 100).OrNull(f, .8f)); var userIds = 0; var testUsers = new Faker<User>() //Optional: Call for objects that have complex initialization .CustomInstantiator(f => new User(userIds++, f.Random.Replace("###-##-####"))) //Use an enum outside scope. .RuleFor(u => u.Gender, f => f.PickRandom<Gender>()) //Basic rules using built-in generators .RuleFor(u => u.FirstName, (f, u) => f.Name.FirstName(u.Gender)) .RuleFor(u => u.LastName, (f, u) => f.Name.LastName(u.Gender)) .RuleFor(u => u.Avatar, f => f.Internet.Avatar()) .RuleFor(u => u.UserName, (f, u) => f.Internet.UserName(u.FirstName, u.LastName)) .RuleFor(u => u.Email, (f, u) => f.Internet.Email(u.FirstName, u.LastName)) .RuleFor(u => u.SomethingUnique, f => $"Value {f.UniqueIndex}") //Use a method outside scope. .RuleFor(u => u.CartId, f => Guid.NewGuid()) //Compound property with context, use the first/last name properties .RuleFor(u => u.FullName, (f, u) => u.FirstName + " " + u.LastName) //And composability of a complex collection. .RuleFor(u => u.Orders, f => testOrders.Generate(3).ToList()) //Optional: After all rules are applied finish with the following action .FinishWith((f, u) => { Console.WriteLine("User Created! Id={0}", u.Id); }); var user = testUsers.Generate(); Console.WriteLine(user.DumpAsJson()); /* OUTPUT: User Created! Id=0 * { "Id": 0, "FirstName": "Audrey", "LastName": "Spencer", "FullName": "Audrey Spencer", "UserName": "Audrey_Spencer72", "Email": "Audrey82@gmail.com", "Avatar": "https://s3.a**maz*onaws.com/uifaces/faces/twitter/itstotallyamy/128.jpg", "CartId": "863f9462-5b88-471f-b833-991d68db8c93", "SSN": "923-88-4231", "Gender": 0, "Orders": [ { "OrderId": 0, "Item": "orange", "Quantity": 8 }, { "OrderId": 1, "Item": "banana", "Quantity": 2 }, { "OrderId": 2, "Item": "kiwi", "Quantity": 9 } ] } */">
 public enum Gender
{
    Male ,
    Female
}

//Set the randomizer seed if you wish to generate repeatable data sets.
Randomizer . Seed = new Random ( 8675309 ) ;

var fruit = new [ ] { "apple" , "banana" , "orange" , "strawberry" , "kiwi" } ;

var orderIds = 0 ;
var testOrders = new Faker < Order > ( )
    //Ensure all properties have rules. By default, StrictMode is false
    //Set a global policy by using Faker.DefaultStrictMode
    . StrictMode ( true )
    //OrderId is deterministic
    . RuleFor ( o => o . OrderId , f => orderIds ++ )
    //Pick some fruit from a basket
    . RuleFor ( o => o . Item , f => f . PickRandom ( fruit ) )
    //A random quantity from 1 to 10
    . RuleFor ( o => o . Quantity , f => f . Random . Number ( 1 , 10 ) )
    //A nullable int? with 80% probability of being null.
    //The .OrNull extension is in the Bogus .Extensions namespace.
    . RuleFor ( o => o . LotNumber , f => f . Random . Int ( 0 , 100 ) . OrNull ( f , .8f ) ) ;


var userIds = 0 ;
var testUsers = new Faker < User > ( )
    //Optional: Call for objects that have complex initialization
    . CustomInstantiator ( f => new User ( userIds ++ , f . Random . Replace ( "###-##-####" ) ) )

    //Use an enum outside scope.
    . RuleFor ( u => u . Gender , f => f . PickRandom < Gender > ( ) )

    //Basic rules using built-in generators
    . RuleFor ( u => u . FirstName , ( f , u ) => f . Name . FirstName ( u . Gender ) )
    . RuleFor ( u => u . LastName , ( f , u ) => f . Name . LastName ( u . Gender ) )
    . RuleFor ( u => u . Avatar , f => f . Internet . Avatar ( ) )
    . RuleFor ( u => u . UserName , ( f , u ) => f . Internet . UserName ( u . FirstName , u . LastName ) )
    . RuleFor ( u => u . Email , ( f , u ) => f . Internet . Email ( u . FirstName , u . LastName ) )
    . RuleFor ( u => u . SomethingUnique , f => $ "Value { f . UniqueIndex } " )

    //Use a method outside scope.
    . RuleFor ( u => u . CartId , f => Guid . NewGuid ( ) )
    //Compound property with context, use the first/last name properties
    . RuleFor ( u => u . FullName , ( f , u ) => u . FirstName + " " + u . LastName )
    //And composability of a complex collection.
    . RuleFor ( u => u . Orders , f => testOrders . Generate ( 3 ) . ToList ( ) )
    //Optional: After all rules are applied finish with the following action
    . FinishWith ( ( f , u ) =>
        {
            Console . WriteLine ( "User Created! Id={0}" , u . Id ) ;
        } ) ;

var user = testUsers . Generate ( ) ;
Console . WriteLine ( user . DumpAsJson ( ) ) ;

/* OUTPUT:
User Created! Id=0
 *
{
  "Id": 0,
  "FirstName": "Audrey",
  "LastName": "Spencer",
  "FullName": "Audrey Spencer",
  "UserName": "Audrey_Spencer72",
  "Email": "Audrey82@gmail.com",
  "Avatar": "https://s3.a**maz*onaws.com/uifaces/faces/twitter/itstotallyamy/128.jpg",
  "CartId": "863f9462-5b88-471f-b833-991d68db8c93",
  "SSN": "923-88-4231",
  "Gender": 0,
  "Orders": [
    {
      "OrderId": 0,
      "Item": "orange",
      "Quantity": 8
    },
    {
      "OrderId": 1,
      "Item": "banana",
      "Quantity": 2
    },
    {
      "OrderId": 2,
      "Item": "kiwi",
      "Quantity": 9
    }
  ]
} */ 

更多例子!

语言 描述
C# 完整的工作示例“伟大的C#示例”
C# 将Bogus和EF Core用于种子数据库
C# 使用自定义API和数据扩展Bogus
F# 将Bogus与F#一起使用
vb.net 将Bogus与vb.net一起使用

地区

由于我们是Faker.js的港口,因此我们支持许多不同的地区。这是韩语的一个例子:

Bogus.DataSets.Lorem(locale: "ko"); Console.WriteLine(lorem.Sentence(5)); } /* 국가는 무상으로 행위로 의무를 구성하지 신체의 처벌받지 예술가의 경우와 */">
 [ Test ]
public void With_Korean_Locale ( )
{
    var lorem = new Bogus . DataSets . Lorem ( locale : "ko" ) ;
    Console . WriteLine ( lorem . Sentence ( 5 ) ) ;
}

/* 국가는 무상으로 행위로 의무를 구성하지 신체의 처벌받지 예술가의 경우와 */

Bogus支持以下地区:

区域代码 语言 区域代码 语言
af_ZA 南非荷兰语 fr_CH 法国(瑞士)
ar 阿拉伯 ge 格鲁吉亚人
az 阿塞拜疆 hr hrvatski
cz 捷克 id_ID 印度尼西亚
de 德语 it 意大利人
de_AT 德国(奥地利) ja 日本人
de_CH 德国(瑞士) ko 韩国人
el 希腊语 lv 拉脱维亚
en 英语 nb_NO 挪威
en_AU 英语(澳大利亚) ne 尼泊尔
en_AU_ocker 英语(澳大利亚ocker) nl 荷兰
en_BORK 英语(Bork) nl_BE 荷兰(比利时)
en_CA 英语(加拿大) pl 抛光
en_GB 英语(英国) pt_BR 葡萄牙(巴西)
en_IE 英语(爱尔兰) pt_PT 葡萄牙(葡萄牙)
en_IND 英语(印度) ro 罗马尼亚人
en_NG 尼日利亚(英语) ru 俄语
en_US 英语(美国) sk 斯洛伐克
en_ZA 英语(南非) sv 瑞典
es 西班牙语 tr 土耳其
es_MX 西班牙语(墨西哥) uk 乌克兰
fa 波斯语 vi 越南人
fi 芬兰 zh_CN 中国人
fr 法语 zh_TW 中国(台湾)
fr_CA 法语(加拿大) zu_ZA 祖鲁(南非)

注意:某些地区可能没有完整的数据集。例如, zh_CN没有lorem数据集,但是ko具有lorem数据集。如果找不到特定于环境的数据集, Bogus将默认为en 。为了进一步说明上一个示例,丢失的zh_CN:lorem数据集将默认为en:lorem数据集。

如果您想帮助贡献新的地区或更新现有的地区,请参阅我们的创建Wiki Wiki页面以获取更多信息。

没有流利的语法

您可以使用Bogus没有流利的设置。下面的示例突出了三种使用Bogus而没有流利语法设置的替代方法。

  • 使用Faker立面。
  • 直接使用数据集
  • 使用Faker<T>继承

使用Faker立面:

 public void Using_The_Faker_Facade ( )
{
   var faker = new Faker ( "en" ) ;
   var o = new Order ( )
       {
           OrderId = faker . Random . Number ( 1 , 100 ) ,
           Item = faker . Lorem . Sentence ( ) ,
           Quantity = faker . Random . Number ( 1 , 10 )
       } ;
   o . Dump ( ) ;
} 

直接使用数据集

Bogus.Randomizer(); var lorem = new Bogus .DataSets.Lorem("en"); var o = new Order() { OrderId = random.Number(1, 100), Item = lorem.Sentence(), Quantity = random.Number(1, 10) }; o.Dump(); }">
 public void Using_DataSets_Directly ( )
{
   var random = new Bogus . Randomizer ( ) ;
   var lorem = new Bogus . DataSets . Lorem ( "en" ) ;
   var o = new Order ( )
       {
           OrderId = random . Number ( 1 , 100 ) ,
           Item = lorem . Sentence ( ) ,
           Quantity = random . Number ( 1 , 10 )
       } ;
   o . Dump ( ) ;
} 

使用Faker<T>继承:

 public class OrderFaker : Faker < Order > {
   public OrderFaker ( ) {
      RuleFor ( o => o . OrderId , f => f . Random . Number ( 1 , 100 ) ) ;
      RuleFor ( o => o . Item , f => f . Lorem . Sentence ( ) ) ;
      RuleFor ( o => o . Quantity , f => f . Random . Number ( 1 , 10 ) ) ;
   }
}

public void Using_FakerT_Inheritance ( )
{
   var orderFaker = new OrderFaker ( ) ;
   var o = orderFaker . Generate ( ) ;
   o . Dump ( ) ;
}

在上面的示例中,使用Bogus的所有三种替代方式都会产生相同的Order结果:

 {
  "OrderId": 61,
  "Item": "vel est ipsa",
  "Quantity": 7
}

Bogus API支持

  • Address
    • ZipCode获取ZipCode。
    • City - 获取城市名称。
    • StreetAddress获取街道地址。
    • CityPrefix获得城市前缀。
    • CitySuffix获得城市后缀。
    • StreetName获取街道名称。
    • BuildingNumber获取一个建筑号码。
    • StreetSuffix获得街有后缀。
    • SecondaryAddress获取一个辅助地址,例如apt。 2'或“套房321”。
    • County - 得到一个县。
    • Country - 获得一个国家。
    • FullAddress获得街道,城市,国家等完整地址。
    • CountryCode获取随机的ISO 3166-1国家代码。
    • State - 获取随机状态。
    • StateAbbr获得州缩写。
    • Latitude - 获得纬度。
    • Longitude - 获得经度。
    • Direction - 生成基本或序数方向。即:西北,南,SW,E。
    • CardinalDirection - 生成基本方向。即:北,南,E,W。
    • OrdinalDirection生成序数方向。 IE:西北,东南,西南。
  • Commerce
    • Department - 获取一个随机商务部。
    • Price - 获取随机产品价格。
    • Categories - 获取随机产品类别。
    • ProductName - 获取随机产品名称。
    • Color - 获取随机颜色。
    • Product - 获取随机产品。
    • ProductAdjective随机产品形容词。
    • ProductMaterial - 随机产品材料。
    • Ean8获取随机EAN -8条形码号。
    • Ean13获取随机EAN -13条形码编号。
  • Company
    • CompanySuffix获取公司后缀。 “ Inc”和“ LLC”等。
    • CompanyName - 获取公司名称。
    • CatchPhrase - 获取公司的插词。
    • Bs获取公司BS短语。
  • Database
    • Column - 生成列名。
    • Type - 生成列类型。
    • Collation - 产生整理。
    • Engine - 生成存储引擎。
  • Date
    • Past - 过去在refDateyearsToGoBack之间获得DateTime
    • PastOffsetrefDateyearsToGoBack之间获得DateTimeOffset
    • Soon - 获得将很快发生的DateTime
    • SoonOffset - 获取将很快发生的DateTimeOffset
    • FuturerefDateyearsToGoForward遥之间获得DateTime
    • FutureOffsetrefDateyearsToGoForward之间获取未来的DateTimeOffset
    • Between - 在startend之间获取随机的DateTime
    • BetweenOffset - 在startend之间获取一个随机的DateTimeOffset
    • Recent - 在过去几天内获取随机的DateTime
    • RecentOffset在过去几天内获取随机的DateTimeOffset
    • Timespan - 获取一个随机TimeSpan
    • Month - 随机一个月。
    • Weekday - 随机工作日。
  • Finance
    • Account - 获取一个帐号。默认长度为8位。
    • AccountName - 获取帐户名。像“储蓄”,“检查”,“房屋贷款”等。
    • Amount - 获取随机金额。默认为0-1000。
    • TransactionType获取交易类型:“存款”,“提款”,“付款”或“发票”。
    • Currency - 获取随机货币。
    • CreditCardNumber生成带有有效Luhn校验和的随机信用卡号。
    • CreditCardCvv生成信用卡CVV。
    • BitcoinAddress生成一个随机的比特币地址。
    • EthereumAddress - 生成一个随机的以太坊地址。
    • RoutingNumber生成具有有效检查数字的ABA路由号。
    • Bic生成银行标识符代码(BIC)代码。
    • Iban生成国际银行帐号(IBAN)。
  • Hacker
    • Abbreviation - 返回缩写。
    • Adjective - 返回形容词。
    • Noun - 返回名词。
    • Verb - 返回动词。
    • IngVerb返回一个以-ing结尾的动词。
    • Phrase - 返回一个短语。
  • Images
    • DataUri获取具有特定宽度和高度的SVG数据URI图像。
    • PicsumUrl从https://p**icsum.p*hotos服务获取图像。
    • PlaceholderUrl - 从https://p*lace*ho*lder.com服务获取图像。
    • LoremFlickrUrl从https://l*or*emflic*kr.com服务获取图像。
  • Internet
    • Avatar从Twitter帐户生成合法的Internet URL AVATAR。
    • Email - 生成电子邮件地址。
    • ExampleEmail - 与 @example.com生成示例电子邮件。
    • UserName - 生成用户名。
    • UserNameUnicode生成一个保留Unicode字符的用户名。
    • DomainName生成一个随机域名。
    • DomainWord - 生成用于域名的域单词。
    • DomainSuffix生成一个域名后缀,例如.com,.net,.org
    • Ip获取一个随机的IPv4地址字符串。
    • Port - 生成一个随机端口号。
    • IpAddress获取随机的IPv4 iPaddress类型。
    • IpEndPoint获取一个随机的IPv4 ipendpoint。
    • Ipv6生成一个随机的IPv6地址字符串。
    • Ipv6Address生成随机的IPv6 iPaddress类型。
    • Ipv6EndPoint获取一个随机的IPv6 ipendpoint。
    • UserAgent生成随机用户代理。
    • Mac获取随机MAC地址。
    • Password - 生成随机密码。
    • Color - 在基本RGB附近获得随机的美学上令人愉悦的颜色。请参阅此处。
    • Protocol - 返回随机协议。 http或https。
    • Url生成一个随机URL。
    • UrlWithPath获取具有随机路径的绝对URL。
    • UrlRootedPath获取一个扎根的URL路径,例如: /foo /bar。可选的使用文件扩展名。
  • Lorem
    • Word - 获取一个随机的Lorem单词。
    • Words - 获取一系列随机的Lorem单词。
    • Letter - 获取角色字母。
    • Sentence - 获取特定单词数的随机句子。
    • Sentences - 获取一些句子。
    • Paragraph - 获取段落。
    • Paragraphs - 获取指定数量的段落。
    • Text - 获取随机LOREM方法的随机文本。
    • Lines - 获取Lorem线。
    • Slug slugify lorem单词。
  • Name
    • FirstName获取名字。获得性别特定名称仅在支持它的地方支持。
    • LastName - 获取姓氏。获得性别特定名称仅在支持它的地方支持。
    • FullName获取全名,呼叫名称和姓氏的串联。
    • Prefix - 获得名称的随机前缀。
    • Suffix - 获取一个名称的随机后缀。
    • FindName获取全名。
    • JobTitle获取一个随机的职位。
    • JobDescriptor获取职位描述。
    • JobArea获得工作区专业知识。
    • JobType获得一种工作。
  • Phone
    • PhoneNumber获取电话号码。
    • PhoneNumberFormat根据语言环境的phone_number.formats []阵列索引获取电话号码。
  • Rant
    • Review - 生成随机的用户评论。
    • Reviews - 生成一系列随机评论。
  • System
    • FileName - 获取一个随机文件名。
    • DirectoryPath获取随机目录路径(UNIX)。
    • FilePath获取随机文件路径(UNIX)。
    • CommonFileName生成带有公共文件扩展名的随机文件名。
    • MimeType - 获取随机的MIME类型。
    • CommonFileType返回常用的文件类型。
    • CommonFileExt返回常用的文件扩展名。
    • FileType返回以Mime -Type可用的任何文件类型。
    • FileExt获取给定MIME类型的随机扩展。
    • Semver获取随机的SEMVER版本字符串。
    • Version - 获取随机Version
    • Exception - 获取带有假堆栈跟踪的随机Exception
    • AndroidId获取随机的GCM注册ID。
    • ApplePushToken获取随机的Apple推动令牌。
    • BlackBerryPin获取一个随机的BlackBerry Device Pin。
  • Vehicle
    • Vin生成车辆识别号(VIN)。
    • Manufacturer - 获取车辆制造名称。即:丰田,福特,保时捷。
    • Model - 获取车辆型号。即:凯美瑞,公民,协议。
    • Type - 获取车辆类型。即:小型货车,SUV,轿车。
    • Fuel - 获取车辆燃料类型。即:电动,汽油,柴油。
  • Random / Randomizer
    • Number - 从0到最大获得INT。
    • Digits - 获取随机数字序列。
    • Even - 返回一个随机的数字。
    • Odd - 返回一个随机奇数。
    • Double - 获得一个随机双,在0.0到1.0之间。
    • Decimal - 获取0.0至1.0之间的随机小数。
    • Float - 获取一个随机浮点,在0.0到1.0之间。
    • Byte - 生成0到255之间的随机字节。
    • Bytes - 获取一个随机字节序列。
    • SByte生成-128和127之间的随机SBYTE。
    • Int在MinValue和MaxValue之间生成一个随机INT。
    • UInt在MinValue和MaxValue之间生成一个随机的UINT。
    • ULong在Minvalue和MaxValue之间产生随机溃疡。
    • Long - 在MinValue和MaxValue之间产生一个随机长。
    • Short - 在MinValue和MaxValue之间生成一个随机的短路。
    • UShort在Minvalue和MaxValue之间产生一个随机的吸管。
    • Char在MinValue和MaxValue之间产生一个随机炭。
    • Chars - 在MinValue和MaxValue之间产生一个随机炭。
    • String - 获取特定长度的字符串。
    • String2获取带有特定长度绘制字符的chars字符串。
    • Hash - 返回随机的六个哈希。默认40个字符,又名SHA-1。
    • Bool - 获取随机布尔。
    • ArrayElement<T> - 获取一个随机数组元素。
    • ArrayElement获取一个随机数组元素。
    • ArrayElements<T> - 获取数组的随机子集。
    • ListItem<T> - 获取一个随机列表项。
    • ListItems<T> - 获取列表的随机子集。
    • CollectionItem<T> - 获取一个随机收集项目。
    • ReplaceNumbers - 用数字代替符号。
    • ReplaceSymbols - 在字符串中替换每个字符实例。
    • Replace - 用数字和字母代替符号。 #=数字,? =字母, * =数字或字母。
    • ClampString - 夹紧字符串的长度在最小字符和最大字符之间。
    • Enum<T> - 选择一个随机枚举。仅与枚举一起工作。
    • Shuffle<T> - 洗牌一个可衡量的来源。
    • Word - 以英语返回一个单词或短语。
    • Words - 以英语获取一些随机的单词和短语。
    • WordsArray在数组(英语)中获取一系列单词。
    • Guid获取随机GUID。
    • Uuid获取随机指导。随机器的别名guid()。
    • RandomLocale返回随机位置。
    • AlphaNumeric - 返回一组随机的alpha数字字符0-9,AZ。
    • Hexadecimal - 生成一个随机的十六进制串。
    • WeightedRandom<T> - 基于概率的加权分布返回t []的选择。

API扩展方法

  • using Bogus .Extensions.Belgium;
    • Bogus .Person.NationalNumber() -rijksregisternummer /numéro国家
  • using Bogus .Extensions.Brazil;
    • Bogus .Person.Cpf() -Cadastro de pessoasfísicas
    • Bogus .DataSets.Company.Cnpj() -Cadastro nacional da pessoajurídica
  • using Bogus .Extensions.Canada;
    • Bogus .Person.Sin() - 加拿大的社会保险号码
  • using Bogus .Extensions.Denmark;
    • Bogus .Person.Cpr() - 丹麦个人身份证号码
  • using Bogus .Extensions.Finland;
    • Bogus .Person.Henkilotunnus() -FinnishHenkilötunnus
  • using Bogus .Extensions.Italy;
    • Bogus .Person.CodiceFiscale()
    • Bogus .DataSets.Finance.CodiceFiscale()
  • using Bogus .Extensions.Norway;
    • Bogus .Person.Fodselsnummer() - 挪威民族身份编号
  • using Bogus .Extensions.Poland;
    • Bogus .Person.Pesel() - Powszechny Elektroniczny系统EwidencjiLudności(Pesel)的数量
    • Bogus .DataSets.Company.Nip() - numer Identyfikacji podatkowej(nip)
    • Bogus .DataSets.Company.Regon() - rejerter goppodarki narodowej(regon)的数量
  • using Bogus .Extensions.Portugal;
    • Bogus .Person.Nif() -NúmeroDeIdentificação财政(NIF)
    • Bogus .DataSets.Company.Nipc()
  • using Bogus .Extensions.Romania;
    • Bogus .Person.Cnp() - 罗马尼亚个人身份证号(CNP)
  • using Bogus .Extensions.Sweden;
    • Bogus .Person.Personnummer() - 瑞典民族身份号码
    • Bogus .Person.Samordningsnummer() - 瑞典协调号码
  • using Bogus .Extensions.UnitedKingdom;
    • Bogus .DataSets.Vehicle.GbRegistrationPlate() - GB车辆登记板
    • Bogus .DataSets.Finance.SortCode() - 银行排序代码
    • Bogus .DataSets.Finance.Nino() - 国民保险号码
    • Bogus .DataSets.Finance.VatNumber() - 生成英国兼容的增值税注册号
    • Bogus .DataSets.Address.CountryOfUnitedKingdom() - 英国国家
  • using Bogus .Extensions.UnitedStates;
    • Bogus .Person.Ssn() - 社会安全号码
    • Bogus .DataSets.Company.Ein() - 雇主身份证号码
  • using Bogus .Distributions.Gaussian;
    • Randomizer.GaussianInt() - 基于特定的正态分布生成int
    • Randomizer.GaussianFloat() - 基于特定的正态分布生成float
    • Randomizer.GaussianDouble() - 根据特定的正态分布生成double
    • Randomizer.GaussianDecimal() - 基于特定的正态分布生成decimal

惊人的社区扩展

  • @NickDoDD79的Auto BogusNuGet Package ) - 通过添加自动.RuleFor()创建和人口功能来扩展Bogus
  • 淘气。 BogusNuGet Package )由@simoncropp -bogus-扩展了带有顽皮字符串列表的Bogus ,这些字符串的可能性很高,该字符串可能在用作用户输入数据时引起问题。示例:
    • .SQLInjection()
    • .ScriptInjection()显示XSS的脆弱性。
    • .iOSVulnerabilities() - 在各种版本的iOS中撞车的字符串。
    • .KnownCVEsandVulnerabilities() - 测试已知漏洞的字符串。
    • .ServerCodeInjection() - 可能导致用户作为特权用户在服务器上运行代码的字符串。
    • 还有更多!
  • Wafflegenerator。 @simoncropp的BogusNuGet Package ) - 华夫饼发电机生成的文本,乍一看,看起来像真实的,繁琐的,散文;充满陈词滥调。
  • nodatime。 BogusNuGet Package )由@simoncropp -bogus添加了对Bogus的支持。
  • countrydata。 BogusNuGet Package )由@simoncropp -Geonames数据包装。示例:
    • .Country().Name() - 随机国家名称。
    • .Country().CurrencyCode() - 随机货币代码。
    • .Australia().Capital() - 国家资本。
    • .Country().Iceland().PostCode() - 随机国家邮政编码。
  • 澳大利亚选择。 BogusNuGet Package )由@simoncropp-澳大利亚选举委员会(AEC)数据(https://www.***aec.gov.au/)包装。示例:
    • .AustralianElectorates().Electorate() - 随机选民。
    • .AustralianElectorates().Name() - 随机选民名称。
    • .AustralianElectorates().CurrentMember()
    • .AustralianElectorates().CurrentMemberName() - 当前的选民议员的随机名称。
    • .AustralianElectorates().Member() - 议会的随机选民成员。
    • .AustralianElectorates().MemberName() - 议会选民成员的随机名称。

Bogus Premium Extensions!

Bogus Premium [立即购买! ] @bchavez
您可以通过购买Bogus高级许可证来帮助支持Bogus开源项目!凭借有效的高级许可证,您将支持这个酷炫的开源项目。您还将获得新的超级大国,从而扩展了Bogus的新功能和独家数据集!在下面检查'em!

  • 高级: Bogus .tools.analyzer (Nuget软件包) - 使用此方便的Roslyn Analyzer节省时间来生成和检测Development&Compile Time中缺少的.RuleFor()规则! Bogus Premium许可证包含此工具!
  • 高级: Bogus 。结合(Nuget软件包) - 包含用于地点和事物的真实地理信息的数据集。创建假的GPS点和路径。有助于为基于位置的知识应用程序创建地理数据。
    • Location
      • Altitude - 以米为单位产生一个随机高度。默认最大高度为8848m(珠穆朗
下载源码

通过命令行克隆项目:

git clone https://github.com/bchavez/Bogus.git