Bogus 20.0.1

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Bogus --version 20.0.1                
NuGet\Install-Package Bogus -Version 20.0.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Bogus" Version="20.0.1" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Bogus --version 20.0.1                
#r "nuget: Bogus, 20.0.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .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