Soenneker.Utils.AutoBogus 2.1.273

Prefix Reserved
dotnet add package Soenneker.Utils.AutoBogus --version 2.1.273                
NuGet\Install-Package Soenneker.Utils.AutoBogus -Version 2.1.273                
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="Soenneker.Utils.AutoBogus" Version="2.1.273" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Soenneker.Utils.AutoBogus --version 2.1.273                
#r "nuget: Soenneker.Utils.AutoBogus, 2.1.273"                
#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 Soenneker.Utils.AutoBogus as a Cake Addin
#addin nuget:?package=Soenneker.Utils.AutoBogus&version=2.1.273

// Install Soenneker.Utils.AutoBogus as a Cake Tool
#tool nuget:?package=Soenneker.Utils.AutoBogus&version=2.1.273                

alternate text is missing from this package README image alternate text is missing from this package README image alternate text is missing from this package README image

alternate text is missing from this package README image Soenneker.Utils.AutoBogus

The .NET Autogenerator

This project is an automatic creator and populator for the fake data generator Bogus. It's a replacement for the abandoned AutoBogus library.

The goals:

  • Be fast
  • Support the latest types in .NET

It uses the fastest .NET Reflection cache: soenneker.reflection.cache. Bogus updates are automatically integrated.

.NET 6+ is supported.

Installation

dotnet add package Soenneker.Utils.AutoBogus

Usage

  • Create an AutoFaker instance:
var optionalConfig = new AutoFakerConfig();
var autoFaker = new AutoFaker(optionalConfig);
  • Call Generate<>() on any type you want:
var randomWord = autoFaker.Generate<string>();
var dictionary = autoFaker.Generate<Dictionary<int, string>>();
var order = autoFaker.Generate<Order>();
  • It's also possible to generate types via an argument:
var randomWord = autoFaker.Generate(typeof(string));
  • Set a faker, configuration, rules, etc:
autoFaker.Config.Faker = new Faker("de");
autoFaker.Config.RepeatCount = 3;
...

AutoFakerOverride

This is the recommended way for controlling type customization:

public class OrderOverride : AutoFakerOverride<Order>
{
    public override void Generate(AutoFakerOverrideContext context)
    {
        var target = (context.Instance as Order)!;
        target.Id = 123;
        
        // Faker is available
        target.Name = context.Faker.Random.Word();

        // AutoFaker is also available
        target.Customer = context.AutoFaker.Generate<Customer>();
     }
}

Then just add AutoFakerOverride to the AutoFaker.Config instance:

autoFaker.Config.Overrides = new List<AutoFakerGeneratorOverride>();
autoFaker.Config.Overrides.Add(new OrderOverride());

AutoFaker<T>

This inherits from Bogus.Faker, and can be used to designate rules specific to the AutoFaker instance.

var autoFaker = new AutoFaker<Order>();
autoFaker.RuleFor(x => x.Id, f => f.Random.Number());
var order = autoFaker.Generate();

Tips

  • ⚠️ Instantiating an AutoFaker takes a non-trivial amount of time because of Bogus Faker initialization (almost 1ms). It's recommended that a single instance be used if possible.
  • AutoFaker.GenerateStatic<T>() is also available, but should be avoided (as it creates a new AutoFaker/Faker on each call).

Notes

  • Some patterns that existed in AutoBogus have been removed due to the complexity and performance impact.
  • This is a work in progress. Contribution is welcomed.

Benchmarks

Soenneker.Utils.AutoBogus - AutoFaker

Method Mean Error StdDev
Generate_int 79.40 ns 0.635 ns 0.563 ns
Generate_string 241.35 ns 3.553 ns 3.324 ns
Generate_complex 6,782.34 ns 43.811 ns 38.837 ns

Soenneker.Utils.AutoBogus - AutoFaker<T>

Method Mean Error StdDev
Generate_string 283.6 ns 3.28 ns 3.07 ns
Generate_complex 8,504.0 ns 76.58 ns 67.89 ns

AutoBogus

Method Mean Error StdDev
Generate_int 1.17 ms 0.033 ms 0.026 ms
Generate_complex 10.91 ms 0.181 ms 0.236 ms

Bogus

Method Mean Error StdDev
Bogus_int 19.70 ns 0.176 ns 0.165 ns
Bogus_string 171.75 ns 2.763 ns 2.585 ns
Bogus_ctor 730,669.06 ns 8,246.622 ns 7,310.416 ns
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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 is compatible.  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 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Soenneker.Utils.AutoBogus:

Package Downloads
Soenneker.Tests.Unit

A base test providing faker and autofaker capabilities

Soenneker.Fixtures.Unit

A base xUnit fixture providing injectable log output, DI mechanisms like IServiceCollection and ServiceProvider, and AutoFaker/Faker for generating test data.

Soenneker.AutoFaker.Overrides.IdNamePair

An AutoFaker (AutoBogus) override for the DTO IdNamePair

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.1.273 2,208 7/14/2024
2.1.272 1,752 7/14/2024
2.1.271 4,657 7/10/2024
2.1.270 2,457 7/10/2024
2.1.269 803 7/10/2024
2.1.268 35 7/10/2024
2.1.267 341 7/10/2024
2.1.266 519 7/10/2024
2.1.265 36 7/10/2024
2.1.264 1,555 7/9/2024
2.1.261 99 7/9/2024
2.1.260 4,536 7/9/2024
2.1.259 3,118 7/9/2024
2.1.258 37 7/9/2024
2.1.257 608 7/9/2024
2.1.256 39 7/9/2024
2.1.255 1,620 7/9/2024
2.1.254 30 7/9/2024
2.1.253 2,327 7/9/2024
2.1.252 43 7/9/2024
2.1.251 517 7/9/2024
2.1.249 73 7/8/2024
2.1.248 73 7/8/2024
2.1.247 67 7/8/2024
2.1.246 579 7/8/2024
2.1.245 74 7/8/2024
2.1.244 68 7/8/2024
2.1.243 5,997 7/7/2024
2.1.242 1,034 7/7/2024
2.1.241 988 7/7/2024
2.1.240 557 7/7/2024
2.1.239 7,554 7/3/2024
2.1.238 794 7/3/2024
2.1.237 6,391 6/21/2024
2.1.236 3,552 6/15/2024
2.1.235 1,576 6/15/2024
2.1.234 6,664 6/1/2024
2.1.233 291 6/1/2024
2.1.232 74 6/1/2024
2.1.231 2,506 6/1/2024
2.1.230 2,918 5/31/2024
2.1.229 2,603 5/29/2024
2.1.228 72 5/29/2024
2.1.227 2,876 5/28/2024
2.1.226 61 5/28/2024
2.1.225 1,959 5/27/2024
2.1.224 71 5/27/2024
2.1.223 3,836 5/26/2024
2.1.221 2,512 5/26/2024
2.1.220 69 5/26/2024
2.1.219 1,726 5/25/2024
2.1.218 65 5/25/2024
2.1.215 850 5/25/2024
2.1.214 72 5/25/2024
2.1.213 2,661 5/25/2024
2.1.212 68 5/25/2024
2.1.211 68 5/25/2024
2.1.210 96 5/25/2024
2.1.208 8,223 5/23/2024
2.1.207 136 5/23/2024
2.1.206 73 5/23/2024
2.1.205 1,250 5/23/2024
2.1.204 75 5/23/2024
2.1.203 1,293 5/22/2024
2.1.202 81 5/22/2024
2.1.201 73 5/22/2024
2.1.200 72 5/22/2024
2.1.199 2,361 5/22/2024
2.1.197 568 5/22/2024
2.1.196 4,550 5/17/2024
2.1.195 1,756 5/17/2024
2.1.194 5,456 5/14/2024
2.1.193 81 5/14/2024
2.1.192 3,165 5/12/2024
2.1.191 5,522 4/29/2024
2.1.190 99 4/29/2024
2.1.189 90 4/29/2024
2.1.188 459 4/29/2024
2.1.187 78 4/29/2024
2.1.186 3,065 4/28/2024
2.1.185 89 4/28/2024
2.1.184 2,060 4/28/2024
2.1.183 806 4/28/2024
2.1.182 2,284 4/28/2024
2.1.181 75 4/28/2024
2.1.180 77 4/28/2024
2.1.179 1,538 4/28/2024
2.1.178 92 4/27/2024
2.1.177 77 4/27/2024
2.1.176 5,843 4/19/2024
2.1.175 2,088 4/18/2024
2.1.174 4,067 4/12/2024
2.1.173 1,655 4/12/2024
2.1.172 533 4/12/2024
2.1.171 397 4/12/2024
2.1.170 76 4/12/2024
2.1.169 70 4/12/2024
2.1.168 2,000 4/12/2024
2.1.167 80 4/12/2024
2.1.166 74 4/12/2024
2.1.165 76 4/12/2024
2.1.164 80 4/12/2024
2.1.163 5,935 4/9/2024
2.1.162 3,185 4/1/2024
2.1.161 86 4/1/2024
2.1.160 5,713 3/25/2024
2.1.159 75 3/25/2024
2.1.158 2,272 3/20/2024
2.1.157 2,074 3/19/2024
2.1.156 1,180 3/19/2024
2.1.155 3,284 3/15/2024
2.1.154 2,068 3/13/2024
2.1.153 846 3/13/2024
2.1.152 346 3/13/2024
2.1.151 95 3/13/2024
2.1.150 86 3/13/2024
2.1.149 96 3/13/2024
2.1.148 107 3/13/2024
2.1.147 2,660 3/12/2024
2.1.146 3,388 3/11/2024
2.1.145 90 3/11/2024
2.1.144 1,219 3/11/2024
2.1.143 1,700 3/9/2024
2.1.142 1,910 3/8/2024
2.1.141 1,246 3/8/2024
2.1.140 2,792 3/6/2024
2.1.139 99 3/6/2024
2.1.138 1,931 3/4/2024
2.1.137 83 3/4/2024
2.1.136 2,657 3/2/2024
2.1.135 1,173 3/2/2024
2.1.134 88 3/2/2024
2.1.133 1,480 3/2/2024
2.1.132 773 3/2/2024
2.1.131 1,737 2/29/2024
2.1.130 1,474 2/29/2024
2.1.129 1,743 2/26/2024
2.1.128 1,547 2/25/2024
2.1.127 82 2/25/2024
2.1.126 2,119 2/23/2024
2.1.125 1,645 2/22/2024
2.1.124 1,068 2/21/2024
2.1.123 1,384 2/21/2024
2.1.122 318 2/21/2024
2.1.121 302 2/21/2024
2.1.120 87 2/21/2024
2.1.119 1,291 2/21/2024
2.1.118 89 2/21/2024
2.1.117 87 2/21/2024
2.1.116 623 2/21/2024
2.1.115 986 2/21/2024
2.1.114 89 2/21/2024
2.1.113 92 2/21/2024
2.1.112 86 2/21/2024
2.1.111 784 2/21/2024
2.1.110 87 2/21/2024
2.1.109 2,593 2/20/2024
2.1.108 84 2/20/2024
2.1.107 2,579 2/19/2024
2.1.106 261 2/19/2024
2.1.104 2,819 2/17/2024
2.1.103 1,385 2/16/2024
2.1.102 76 2/16/2024
2.1.101 702 2/16/2024
2.1.100 1,151 2/16/2024
2.1.99 79 2/16/2024
2.1.98 75 2/16/2024
2.1.97 688 2/16/2024
2.1.96 79 2/16/2024
2.1.95 73 2/16/2024
2.1.94 1,399 2/16/2024
2.1.93 78 2/16/2024
2.1.92 2,063 2/13/2024
2.1.91 2,056 2/13/2024
2.1.90 778 2/13/2024
2.1.89 84 2/13/2024
2.1.88 647 2/13/2024
2.1.87 2,049 2/11/2024
2.1.86 786 2/11/2024
2.1.85 96 2/11/2024
2.1.84 1,474 2/11/2024
2.1.83 89 2/11/2024
2.1.82 1,091 2/11/2024
2.1.81 90 2/11/2024
2.1.80 93 2/11/2024
2.1.79 91 2/11/2024
2.1.78 88 2/11/2024
2.1.76 2,383 2/9/2024
2.1.75 88 2/9/2024
2.1.74 1,470 2/9/2024
2.1.73 99 2/9/2024
2.1.72 950 2/8/2024
2.1.71 90 2/8/2024
2.1.70 87 2/8/2024
2.1.69 447 2/8/2024
2.1.68 1,108 2/8/2024
2.1.67 94 2/8/2024
2.1.66 87 2/8/2024
2.1.65 1,104 2/8/2024
2.1.64 86 2/8/2024
2.1.63 775 2/8/2024
2.1.62 2,082 2/7/2024
2.1.61 1,058 2/6/2024
2.1.60 96 2/6/2024
2.1.59 1,355 2/6/2024
2.1.58 97 2/6/2024
2.1.57 853 2/6/2024
2.1.54 91 2/5/2024
2.1.53 89 2/5/2024
2.1.52 2,825 2/4/2024
2.1.51 1,262 2/2/2024
2.1.49 79 2/1/2024
2.1.48 1,666 1/31/2024
2.1.47 1,338 1/29/2024
2.1.46 1,333 1/29/2024
2.1.45 624 1/29/2024
2.1.44 832 1/28/2024
2.1.43 81 1/28/2024
2.1.42 858 1/28/2024
2.1.41 79 1/28/2024
2.1.40 83 1/28/2024
2.1.39 705 1/28/2024
2.1.38 913 1/28/2024
2.1.37 687 1/28/2024
2.1.36 83 1/28/2024
2.1.35 79 1/28/2024
2.1.34 82 1/28/2024
2.1.33 905 1/27/2024
2.1.31 298 1/27/2024
2.1.30 1,025 1/27/2024
2.1.29 942 1/27/2024
2.1.27 509 1/27/2024
2.1.26 999 1/27/2024
2.1.25 692 1/26/2024
2.1.24 77 1/26/2024
2.1.23 80 1/26/2024
2.1.22 81 1/26/2024
2.1.21 665 1/26/2024
2.1.20 652 1/26/2024
2.1.19 703 1/26/2024
2.1.18 699 1/26/2024
2.1.17 782 1/26/2024
2.1.16 786 1/26/2024
2.1.15 300 1/25/2024
2.1.14 855 1/25/2024
2.1.13 847 1/25/2024
2.1.12 83 1/25/2024
2.1.11 761 1/25/2024
2.1.10 717 1/25/2024
2.1.9 777 1/25/2024
2.1.7 5,141 1/15/2024
2.1.6 1,146 1/14/2024
2.1.5 1,422 1/14/2024
2.1.4 1,348 1/13/2024
2.1.3 1,371 1/5/2024
2.1.2 116 1/2/2024
2.1.1 128 12/29/2023