Bogus 20.0.1
Prefix ReservedSee the version list below for details.
dotnet add package Bogus --version 20.0.1
NuGet\Install-Package Bogus -Version 20.0.1
<PackageReference Include="Bogus" Version="20.0.1" />
paket add Bogus --version 20.0.1
#r "nuget: Bogus, 20.0.1"
// Install Bogus as a Cake Addin #addin nuget:?package=Bogus&version=20.0.1 // Install Bogus as a Cake Tool #tool nuget:?package=Bogus&version=20.0.1
The Great C# Example
public enum Gender
{
Male,
Female
}
//Set the randomzier 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));
var userIds = 0;
var testUsers = new Faker<User>()
//Optional: Call for objects that have complex initialization
.CustomInstantiator(f => new User(userIds++, f.Random.Replace("###-##-####")))
//Basic rules using built-in generators
.RuleFor(u => u.FirstName, f => f.Name.FirstName())
.RuleFor(u => u.LastName, f => f.Name.LastName())
.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}")
.RuleFor(u => u.SomeGuid, Guid.NewGuid)
//Use an enum outside scope.
.RuleFor(u => u.Gender, f => f.PickRandom<Gender>())
//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.amazonaws.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
}
]
} */
Click here for F# and VB.NET examples!
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net40 is compatible. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.0
- No dependencies.
-
.NETStandard 2.0
- No dependencies.
NuGet packages (156)
Showing the top 5 NuGet packages that depend on Bogus:
Package | Downloads |
---|---|
AutoBogus
A C# library complementing the Bogus generator by adding auto creation and population capabilities. |
|
FunFair.Test.Common
FunFair Common Test Infrastructure for building xUnit tests on top of. |
|
Reo.Core.Testing
Package Description |
|
Soenneker.Utils.AutoBogus
The .NET Bogus autogenerator |
|
HQ
This package contains the full-stack build for HQ.io. |
GitHub repositories (127)
Showing the top 5 popular GitHub repositories that depend on Bogus:
Repository | Stars |
---|---|
cefsharp/CefSharp
.NET (WPF and Windows Forms) bindings for the Chromium Embedded Framework
|
|
FluentValidation/FluentValidation
A popular .NET validation library for building strongly-typed validation rules.
|
|
bchavez/Bogus
:card_index: A simple fake data generator for C#, F#, and VB.NET. Based on and ported from the famed faker.js.
|
|
elsa-workflows/elsa-core
A .NET workflows library
|
|
graphql-dotnet/graphql-dotnet
GraphQL for .NET
|
Version | Downloads | Last updated |
---|---|---|
35.6.1 | 2,368,378 | 9/2/2024 |
35.6.0 | 1,423,693 | 7/19/2024 |
35.5.1 | 3,209,657 | 4/28/2024 |
35.5.0 | 2,307,916 | 3/9/2024 |
35.4.1 | 322,797 | 3/2/2024 |
35.4.0 | 2,560,642 | 1/14/2024 |
35.3.2 | 7,656 | 1/14/2024 |
35.3.1 | 14,069 | 1/13/2024 |
35.3.0 | 564,333 | 1/1/2024 |
35.2.0 | 126,331 | 12/26/2023 |
35.0.1 | 481,712 | 12/12/2023 |
34.0.2 | 29,742,012 | 3/27/2022 |
34.0.1 | 4,661,324 | 11/23/2021 |
33.1.1 | 3,047,541 | 8/29/2021 |
33.0.2 | 7,376,459 | 2/21/2021 |
33.0.1 | 384,465 | 2/7/2021 |
32.1.1 | 217,290 | 1/31/2021 |
32.0.2 | 2,151,681 | 12/12/2020 |
32.0.1 | 723,108 | 11/28/2020 |
31.0.3 | 10,677,600 | 10/4/2020 |
30.0.4 | 812,297 | 8/15/2020 |
30.0.1-beta-4 | 14,996 | 7/24/2020 |
30.0.1-beta-3 | 15,704 | 6/30/2020 |
30.0.1-beta-2 | 5,358 | 6/21/2020 |
30.0.1-beta-1 | 7,776 | 6/15/2020 |
29.0.2 | 4,952,066 | 4/11/2020 |
29.0.1 | 1,613,002 | 2/10/2020 |
28.4.4 | 2,389,923 | 12/10/2019 |
28.4.3 | 305,876 | 12/4/2019 |
28.4.2 | 23,423 | 11/30/2019 |
28.4.1 | 1,192,589 | 10/15/2019 |
28.3.2 | 252,003 | 10/4/2019 |
28.3.1 | 175,379 | 9/21/2019 |
28.2.1 | 583,742 | 9/10/2019 |
28.1.1 | 7,281 | 9/10/2019 |
28.0.3 | 237,965 | 8/28/2019 |
28.0.2 | 1,236,264 | 7/7/2019 |
28.0.1 | 59,640 | 7/2/2019 |
27.0.1 | 1,216,914 | 5/2/2019 |
26.0.2 | 443,101 | 3/22/2019 |
26.0.1 | 700,431 | 2/26/2019 |
25.0.4 | 522,074 | 1/18/2019 |
25.0.3 | 125,841 | 1/6/2019 |
25.0.2 | 234,692 | 12/11/2018 |
25.0.1 | 119,729 | 11/27/2018 |
24.3.1 | 198,665 | 11/3/2018 |
24.3.0 | 514,074 | 10/2/2018 |
24.2.0 | 56,593 | 9/27/2018 |
23.0.2 | 187,665 | 8/13/2018 |
22.3.2 | 165,505 | 7/18/2018 |
22.3.1 | 114,897 | 7/5/2018 |
22.2.1 | 28,263 | 6/29/2018 |
22.1.4 | 32,364 | 6/26/2018 |
22.1.3 | 63,363 | 6/14/2018 |
22.1.2 | 320,244 | 5/29/2018 |
22.1.1 | 36,100 | 5/21/2018 |
22.0.9 | 6,424 | 5/17/2018 |
22.0.8 | 411,959 | 4/10/2018 |
22.0.7 | 56,467 | 4/1/2018 |
22.0.6 | 8,948 | 3/29/2018 |
22.0.5 | 148,093 | 3/3/2018 |
22.0.3 | 19,148 | 2/27/2018 |
22.0.2 | 174,519 | 1/6/2018 |
22.0.1 | 56,234 | 12/23/2017 |
21.0.5 | 12,611 | 12/16/2017 |
21.0.4 | 31,144 | 12/13/2017 |
21.0.2 | 19,767 | 12/8/2017 |
20.0.2 | 133,357 | 11/6/2017 |
20.0.1 | 8,137 | 11/5/2017 |
19.0.2 | 51,186 | 11/1/2017 |
18.0.2 | 137,436 | 9/14/2017 |
18.0.1 | 15,694 | 9/13/2017 |
17.0.1 | 79,771 | 8/25/2017 |
16.0.3 | 14,423 | 8/24/2017 |
16.0.2 | 7,354 | 8/23/2017 |
15.0.7 | 8,567 | 8/21/2017 |
15.0.6 | 29,171 | 8/3/2017 |
15.0.5 | 8,415 | 7/28/2017 |
15.0.3 | 251,749 | 5/7/2017 |
15.0.1 | 36,392 | 4/11/2017 |
12.0.1 | 15,406 | 3/27/2017 |
11.0.5 | 13,911 | 3/20/2017 |
11.0.4 | 32,644 | 3/15/2017 |
11.0.3 | 9,945 | 3/13/2017 |
11.0.2 | 54,856 | 2/23/2017 |
11.0.1 | 4,924 | 2/21/2017 |
10.0.1 | 4,907 | 2/18/2017 |
9.0.2 | 25,384 | 1/19/2017 |
9.0.1 | 4,384 | 1/18/2017 |
8.0.4 | 4,670 | 1/17/2017 |
8.0.3 | 39,537 | 12/20/2016 |
8.0.2 | 12,557 | 12/7/2016 |
8.0.1 | 15,066 | 11/25/2016 |
8.0.1-beta-1 | 23,401 | 10/22/2016 |
7.1.7 | 80,935 | 10/11/2016 |
7.1.6 | 44,763 | 8/8/2016 |
7.1.5 | 8,677 | 7/27/2016 |
7.1.4 | 7,728 | 7/7/2016 |
7.1.3 | 39,932 | 6/28/2016 |
7.1.3-beta-1 | 3,868 | 5/20/2016 |
7.1.2 | 43,524 | 5/16/2016 |
7.1.2-beta-1 | 3,935 | 5/16/2016 |
7.1.1 | 4,305 | 5/15/2016 |
7.1.1-beta-1 | 3,755 | 5/15/2016 |
6.1.1 | 9,931 | 3/30/2016 |
6.1.1-beta-1 | 4,032 | 3/29/2016 |
5.1.1-beta-3 | 3,927 | 3/23/2016 |
5.1.1-beta-2 | 4,294 | 3/22/2016 |
5.1.1-beta-1 | 3,999 | 3/21/2016 |
5.0.1 | 15,614 | 2/25/2016 |
5.0.1-beta-2 | 4,099 | 2/25/2016 |
4.0.1 | 4,571 | 2/16/2016 |
4.0.1-beta-1 | 3,844 | 2/16/2016 |
3.0.6 | 6,338 | 1/21/2016 |
3.0.6-beta-1 | 3,822 | 1/21/2016 |
3.0.5 | 8,571 | 1/21/2016 |
3.0.5-beta-4 | 3,757 | 1/20/2016 |
3.0.5-beta-3 | 3,833 | 1/18/2016 |
3.0.5-beta-2 | 5,010 | 1/12/2016 |
3.0.4 | 5,095 | 12/10/2015 |
3.0.3 | 4,178 | 12/9/2015 |
3.0.2 | 4,390 | 11/24/2015 |
3.0.1 | 4,788 | 10/22/2015 |
3.0.0.3 | 5,080 | 7/21/2015 |
3.0.0.2 | 6,097 | 7/12/2015 |
3.0.0.1 | 24,960 | 7/12/2015 |
2.1.5.2 | 4,697 | 6/22/2015 |
2.1.5.1 | 4,274 | 6/11/2015 |
2.1.4.2 | 4,284 | 6/11/2015 |
2.1.4.1 | 4,296 | 6/10/2015 |
2.1.4 | 47,910 | 6/9/2015 |
## v20.0.1
* Added `Faker<T>.Clone()`: Clones internal state of a `Faker<T>` and allows for complex faking scenarios and rule combinations.
* Added `Faker<T>.UseSeed(n)`: Allows you to specify a localized seed value on a `Faker<T>` instead of a global static `Randomizer.Seed`.
* Stronger `Seed` determinism for multi-threaded scenarios.
## v19.0.2
* Fixed #99: Possible threading issue that can cause `System.ArgumentException`.
## v19.0.1
* Using new BSON binary data format for locales.
* Removed dependency on Newtonsoft.Json!
* Locale Updates -
* `fr`: new street address prefixes.
* `fa`: new street addresses.
* `pl`: removed 2008 value from city.
* `en`: new gender first names
* New Dutch (Belgium) `nl_BE` locale.
* New Romanian `ro` locale.
* Added `f.Finance.RoutingNumber` - Generates an ABA routing number with valid check digit.
* Added `Faker.GenerateForever` that returns `IEnumerable<T>` with unlimited generated items when iterated over.
* Added United Kingdom extension method to generate bank ShortCodes on `f.Finance.ShortCode()`.
* Re-ordered adjective and buzz in the `f.Company.Bs` for a correct gramatics.
* Added `f.Address.Direction`. Generates cardinal or ordinal directions.
* Added `f.Address.CardinalDirection`. Generates "North", "South", etc.
* Added `f.Address.OrdinalDirection`. Generates "Northeast", "Southwest", etc.
## v18.0.2
* Issue 86: Removed diacritic mark/accents (á, í, ó, ú, etc) from generated email addresses and user names.
* Added `string.RemoveDiacritics` helper method.
## v18.0.1
* Fixed bug in Finland's `f.Person.Henkilötunnus` personal identity code generator that sometimes produced 11 characters.
* Added `f.Finance.Ethereum`. Generate an Ethereum address.
* Added `f.Finance.CreditCardCvv`. Generate a random credit card CVV number.
* Improved `f.Finance.CreditCardNumber`. Generate a random credit card number.
* Added `f.Random.Hexadecimal`. Generates a random hexadecimal string.
* Added `f.System.DirectoryPath`. Generates a random directory path.
* Added `f.System.FilePath`. Generates a random file path.
* Added `f.Date.Soon`. Generates a date and time that will happen soon.
* Added `f.Random.ArrayElements`. Gets a random subset of an array.
* Added `f.Random.ListItems`. Gets a random subset of a list.
* Added `f.Company.Cnpj` extension method for Brazil. Generates Brazilian company document.
* Improved `f.PhoneNumbers`. More realistic US phone numbers.
* Improved `f.Address.Latitude/Longitude` with min and max parameters.
* Minimum for `f.Commerce.Price` is now $1.00 (not zero).
* Reduced assembly size by removing redundant locale data.
* Locale updates:
* `en_AU` - Update Australian postcode ranges.
* `en_IND` - Indian postcodes are always numeric.
* `ru` - Word corrections.
Full History Here: https://github.com/bchavez/Bogus/blob/master/HISTORY.md