Soenneker.Utils.AutoBogus 3.0.399

Prefix Reserved
There is a newer version of this package available.
See the version list below for details.
dotnet add package Soenneker.Utils.AutoBogus --version 3.0.399                
NuGet\Install-Package Soenneker.Utils.AutoBogus -Version 3.0.399                
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="3.0.399" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Soenneker.Utils.AutoBogus --version 3.0.399                
#r "nuget: Soenneker.Utils.AutoBogus, 3.0.399"                
#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=3.0.399

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

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();

Interfaces/Abstracts

The base library does not generate interfaces or abstract objects, but these enable you to generate mocks of them:

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 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.  net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (9)

Showing the top 5 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

Soenneker.Utils.AutoBogus.NSubstitute

An AutoFakerBinder for interfaces and abstract objects using NSubstitute

Soenneker.Utils.AutoBogus.FakeItEasy

An AutoFakerBinder for interfaces and abstract objects using FakeItEasy

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.0.424 1,837 11/20/2024
3.0.422 3,754 11/20/2024
3.0.420 882 11/20/2024
3.0.419 4,907 11/19/2024
3.0.418 31 11/19/2024
3.0.417 81 11/19/2024
3.0.416 27 11/19/2024
3.0.415 621 11/19/2024
3.0.414 2,066 11/19/2024
3.0.413 30 11/19/2024
3.0.412 28 11/19/2024
3.0.411 28 11/19/2024
3.0.410 10,375 11/14/2024
3.0.409 3,637 11/14/2024
3.0.408 58 11/14/2024
3.0.407 3,644 11/14/2024
3.0.406 3,222 11/14/2024
3.0.405 60 11/14/2024
3.0.404 1,184 11/14/2024
3.0.403 62 11/14/2024
3.0.402 508 11/14/2024
3.0.401 121 11/14/2024
3.0.400 58 11/14/2024
3.0.399 65 11/14/2024
2.1.398 903 11/13/2024
2.1.397 8,759 11/12/2024
2.1.396 3,275 11/12/2024
2.1.395 5,335 11/9/2024
2.1.394 1,611 11/8/2024
2.1.393 787 11/8/2024
2.1.392 2,138 11/8/2024
2.1.391 1,044 11/8/2024
2.1.390 3,870 11/8/2024
2.1.389 3,119 11/8/2024
2.1.388 6,598 10/31/2024
2.1.387 5,279 10/29/2024
2.1.386 2,892 10/28/2024
2.1.385 6,130 10/26/2024
2.1.383 5,331 10/22/2024
2.1.382 1,333 10/22/2024
2.1.381 5,720 10/17/2024
2.1.380 4,312 10/14/2024
2.1.379 352 10/14/2024
2.1.378 3,854 10/11/2024
2.1.377 612 10/11/2024
2.1.376 5,749 10/8/2024
2.1.375 4,583 10/8/2024
2.1.374 6,902 10/3/2024
2.1.373 67 10/3/2024
2.1.372 66 10/3/2024
2.1.371 1,118 10/3/2024
2.1.370 1,736 10/3/2024
2.1.369 5,410 10/2/2024
2.1.368 77 10/2/2024
2.1.367 5,561 10/1/2024
2.1.366 1,456 10/1/2024
2.1.365 4,694 9/29/2024
2.1.364 1,154 9/29/2024
2.1.363 78 9/29/2024
2.1.362 4,830 9/27/2024
2.1.361 76 9/27/2024
2.1.360 174 9/27/2024
2.1.359 71 9/27/2024
2.1.358 2,587 9/27/2024
2.1.357 76 9/27/2024
2.1.356 71 9/27/2024
2.1.355 3,601 9/27/2024
2.1.354 3,857 9/26/2024
2.1.353 137 9/26/2024
2.1.351 4,863 9/26/2024
2.1.350 2,180 9/25/2024
2.1.349 79 9/25/2024
2.1.348 81 9/25/2024
2.1.347 4,367 9/23/2024
2.1.346 1,981 9/23/2024
2.1.345 1,804 9/23/2024
2.1.344 82 9/23/2024
2.1.343 115 9/23/2024
2.1.342 3,654 9/23/2024
2.1.341 77 9/23/2024
2.1.340 85 9/23/2024
2.1.339 1,346 9/23/2024
2.1.338 76 9/23/2024
2.1.337 1,399 9/22/2024
2.1.336 6,867 9/17/2024
2.1.335 83 9/17/2024
2.1.334 3,219 9/17/2024
2.1.333 2,156 9/17/2024
2.1.332 87 9/17/2024
2.1.331 79 9/17/2024
2.1.330 149 9/17/2024
2.1.328 15,487 9/12/2024
2.1.327 2,610 9/11/2024
2.1.326 895 9/11/2024
2.1.325 2,654 9/11/2024
2.1.324 96 9/11/2024
2.1.323 6,924 9/10/2024
2.1.322 1,215 9/10/2024
2.1.320 2,108 9/9/2024
2.1.319 1,324 9/9/2024
2.1.318 1,804 9/9/2024
2.1.317 4,989 9/9/2024
2.1.316 91 9/9/2024
2.1.315 2,788 9/9/2024
2.1.314 3,775 9/6/2024
2.1.313 2,934 9/6/2024
2.1.312 2,031 9/5/2024
2.1.311 99 9/5/2024
2.1.310 395 9/5/2024
2.1.309 87 9/5/2024
2.1.308 1,646 9/5/2024
2.1.307 91 9/5/2024
2.1.306 101 9/5/2024
2.1.305 92 9/5/2024
2.1.304 103 9/5/2024
2.1.303 101 9/5/2024
2.1.302 6,132 9/4/2024
2.1.301 1,040 9/4/2024
2.1.300 4,297 9/3/2024
2.1.299 2,622 9/3/2024
2.1.298 3,016 9/3/2024
2.1.297 440 9/2/2024
2.1.296 4,535 8/29/2024
2.1.295 3,332 8/25/2024
2.1.294 4,303 8/21/2024
2.1.293 98 8/21/2024
2.1.292 99 8/21/2024
2.1.291 943 8/20/2024
2.1.290 113 8/20/2024
2.1.289 868 8/20/2024
2.1.288 113 8/20/2024
2.1.287 1,913 8/20/2024
2.1.286 100 8/20/2024
2.1.285 99 8/20/2024
2.1.284 6,151 8/19/2024
2.1.283 6,101 8/13/2024
2.1.282 8,005 8/6/2024
2.1.281 997 8/6/2024
2.1.280 4,961 8/1/2024
2.1.279 2,926 7/31/2024
2.1.278 5,616 7/25/2024
2.1.277 70 7/25/2024
2.1.276 1,884 7/24/2024
2.1.275 651 7/24/2024
2.1.274 9,829 7/19/2024
2.1.273 3,557 7/14/2024
2.1.272 1,861 7/14/2024
2.1.271 4,840 7/10/2024
2.1.270 2,559 7/10/2024
2.1.269 896 7/10/2024
2.1.268 88 7/10/2024
2.1.267 405 7/10/2024
2.1.266 645 7/10/2024
2.1.265 92 7/10/2024
2.1.264 1,632 7/9/2024
2.1.261 171 7/9/2024
2.1.260 4,651 7/9/2024
2.1.259 3,237 7/9/2024
2.1.258 91 7/9/2024
2.1.257 694 7/9/2024
2.1.256 98 7/9/2024
2.1.255 1,716 7/9/2024
2.1.254 88 7/9/2024
2.1.253 2,417 7/9/2024
2.1.252 95 7/9/2024
2.1.251 562 7/9/2024
2.1.249 99 7/8/2024
2.1.248 107 7/8/2024
2.1.247 93 7/8/2024
2.1.246 624 7/8/2024
2.1.245 107 7/8/2024
2.1.244 97 7/8/2024
2.1.243 6,106 7/7/2024
2.1.242 1,077 7/7/2024
2.1.241 1,030 7/7/2024
2.1.240 605 7/7/2024
2.1.239 8,902 7/3/2024
2.1.238 843 7/3/2024
2.1.237 8,223 6/21/2024
2.1.236 3,673 6/15/2024
2.1.235 1,619 6/15/2024
2.1.234 8,144 6/1/2024
2.1.233 335 6/1/2024
2.1.232 97 6/1/2024
2.1.231 2,582 6/1/2024
2.1.230 2,978 5/31/2024
2.1.229 2,754 5/29/2024
2.1.228 96 5/29/2024
2.1.227 2,929 5/28/2024
2.1.226 82 5/28/2024
2.1.225 2,014 5/27/2024
2.1.224 92 5/27/2024
2.1.223 3,898 5/26/2024
2.1.221 2,579 5/26/2024
2.1.220 95 5/26/2024
2.1.219 1,808 5/25/2024
2.1.218 87 5/25/2024
2.1.215 883 5/25/2024
2.1.214 94 5/25/2024
2.1.213 2,716 5/25/2024
2.1.212 92 5/25/2024
2.1.211 91 5/25/2024
2.1.210 124 5/25/2024
2.1.208 15,264 5/23/2024
2.1.207 156 5/23/2024
2.1.206 94 5/23/2024
2.1.205 1,287 5/23/2024
2.1.204 97 5/23/2024
2.1.203 1,338 5/22/2024
2.1.202 108 5/22/2024
2.1.201 96 5/22/2024
2.1.200 96 5/22/2024
2.1.199 2,416 5/22/2024
2.1.197 606 5/22/2024
2.1.196 4,719 5/17/2024
2.1.195 1,796 5/17/2024
2.1.194 5,540 5/14/2024
2.1.193 112 5/14/2024
2.1.192 3,250 5/12/2024
2.1.191 8,939 4/29/2024
2.1.190 130 4/29/2024
2.1.189 120 4/29/2024
2.1.188 489 4/29/2024
2.1.187 98 4/29/2024
2.1.186 3,127 4/28/2024
2.1.185 114 4/28/2024
2.1.184 2,135 4/28/2024
2.1.183 845 4/28/2024
2.1.182 2,332 4/28/2024
2.1.181 92 4/28/2024
2.1.180 95 4/28/2024
2.1.179 1,585 4/28/2024
2.1.178 126 4/27/2024
2.1.177 84 4/27/2024
2.1.176 5,937 4/19/2024
2.1.175 2,150 4/18/2024
2.1.174 4,222 4/12/2024
2.1.173 1,710 4/12/2024
2.1.172 567 4/12/2024
2.1.171 428 4/12/2024
2.1.170 104 4/12/2024
2.1.169 113 4/12/2024
2.1.168 2,066 4/12/2024
2.1.167 108 4/12/2024
2.1.166 121 4/12/2024
2.1.165 95 4/12/2024
2.1.164 88 4/12/2024
2.1.163 6,036 4/9/2024
2.1.162 3,292 4/1/2024
2.1.161 109 4/1/2024
2.1.160 7,102 3/25/2024
2.1.159 97 3/25/2024
2.1.158 2,336 3/20/2024
2.1.157 2,134 3/19/2024
2.1.156 1,225 3/19/2024
2.1.155 3,342 3/15/2024
2.1.154 2,108 3/13/2024
2.1.153 881 3/13/2024
2.1.152 393 3/13/2024
2.1.151 116 3/13/2024
2.1.150 109 3/13/2024
2.1.149 114 3/13/2024
2.1.148 131 3/13/2024
2.1.147 2,770 3/12/2024
2.1.146 3,470 3/11/2024
2.1.145 112 3/11/2024
2.1.144 1,274 3/11/2024
2.1.143 1,753 3/9/2024
2.1.142 1,969 3/8/2024
2.1.141 1,293 3/8/2024
2.1.140 2,857 3/6/2024
2.1.139 122 3/6/2024
2.1.138 1,984 3/4/2024
2.1.137 103 3/4/2024
2.1.136 2,711 3/2/2024
2.1.135 1,223 3/2/2024
2.1.134 110 3/2/2024
2.1.133 1,558 3/2/2024
2.1.132 834 3/2/2024
2.1.131 1,805 2/29/2024
2.1.130 1,538 2/29/2024
2.1.129 1,802 2/26/2024
2.1.128 1,610 2/25/2024
2.1.127 105 2/25/2024
2.1.126 2,218 2/23/2024
2.1.125 1,973 2/22/2024
2.1.124 1,114 2/21/2024
2.1.123 1,437 2/21/2024
2.1.122 344 2/21/2024
2.1.121 355 2/21/2024
2.1.120 112 2/21/2024
2.1.119 1,361 2/21/2024
2.1.118 112 2/21/2024
2.1.117 111 2/21/2024
2.1.116 662 2/21/2024
2.1.115 1,022 2/21/2024
2.1.114 117 2/21/2024
2.1.113 112 2/21/2024
2.1.112 112 2/21/2024
2.1.111 821 2/21/2024
2.1.110 112 2/21/2024
2.1.109 2,671 2/20/2024
2.1.108 107 2/20/2024
2.1.107 2,651 2/19/2024
2.1.106 302 2/19/2024
2.1.104 2,891 2/17/2024
2.1.103 1,445 2/16/2024
2.1.102 97 2/16/2024
2.1.101 752 2/16/2024
2.1.100 1,205 2/16/2024
2.1.99 105 2/16/2024
2.1.98 101 2/16/2024
2.1.97 730 2/16/2024
2.1.96 104 2/16/2024
2.1.95 98 2/16/2024
2.1.94 1,458 2/16/2024
2.1.93 104 2/16/2024
2.1.92 2,133 2/13/2024
2.1.91 2,138 2/13/2024
2.1.90 822 2/13/2024
2.1.89 103 2/13/2024
2.1.88 690 2/13/2024
2.1.87 2,113 2/11/2024
2.1.86 815 2/11/2024
2.1.85 120 2/11/2024
2.1.84 1,536 2/11/2024
2.1.83 112 2/11/2024
2.1.82 1,134 2/11/2024
2.1.81 114 2/11/2024
2.1.80 103 2/11/2024
2.1.79 116 2/11/2024
2.1.78 113 2/11/2024
2.1.76 2,457 2/9/2024
2.1.75 111 2/9/2024
2.1.74 1,503 2/9/2024
2.1.73 121 2/9/2024
2.1.72 984 2/8/2024
2.1.71 117 2/8/2024
2.1.70 112 2/8/2024
2.1.69 483 2/8/2024
2.1.68 1,143 2/8/2024
2.1.67 116 2/8/2024
2.1.66 109 2/8/2024
2.1.65 1,142 2/8/2024
2.1.64 104 2/8/2024
2.1.63 809 2/8/2024
2.1.62 2,132 2/7/2024
2.1.61 1,102 2/6/2024
2.1.60 122 2/6/2024
2.1.59 1,414 2/6/2024
2.1.58 123 2/6/2024
2.1.57 901 2/6/2024
2.1.54 116 2/5/2024
2.1.53 115 2/5/2024
2.1.52 2,894 2/4/2024
2.1.51 1,312 2/2/2024
2.1.49 104 2/1/2024
2.1.48 1,708 1/31/2024
2.1.47 1,377 1/29/2024
2.1.46 1,385 1/29/2024
2.1.45 645 1/29/2024
2.1.44 874 1/28/2024
2.1.43 103 1/28/2024
2.1.42 897 1/28/2024
2.1.41 88 1/28/2024
2.1.40 106 1/28/2024
2.1.39 747 1/28/2024
2.1.38 952 1/28/2024
2.1.37 713 1/28/2024
2.1.36 92 1/28/2024
2.1.35 100 1/28/2024
2.1.34 101 1/28/2024
2.1.33 946 1/27/2024
2.1.31 333 1/27/2024
2.1.30 1,067 1/27/2024
2.1.29 987 1/27/2024
2.1.27 539 1/27/2024
2.1.26 1,036 1/27/2024
2.1.25 747 1/26/2024
2.1.24 102 1/26/2024
2.1.23 106 1/26/2024
2.1.22 95 1/26/2024
2.1.21 694 1/26/2024
2.1.20 673 1/26/2024
2.1.19 741 1/26/2024
2.1.18 731 1/26/2024
2.1.17 826 1/26/2024
2.1.16 810 1/26/2024
2.1.15 330 1/25/2024
2.1.14 897 1/25/2024
2.1.13 879 1/25/2024
2.1.12 102 1/25/2024
2.1.11 798 1/25/2024
2.1.10 770 1/25/2024
2.1.9 822 1/25/2024
2.1.7 5,230 1/15/2024
2.1.6 1,195 1/14/2024
2.1.5 1,468 1/14/2024
2.1.4 1,404 1/13/2024
2.1.3 1,402 1/5/2024
2.1.2 143 1/2/2024
2.1.1 187 12/29/2023