Skip to content

Library used for generating arbitrary values for unit testing. Allow extension for your own type

License

Notifications You must be signed in to change notification settings

Berreip/Arbitrary

Repository files navigation

Arbitrary

Library used for generating arbitrary values for unit testing. Allow extension for your own type

Quick start:

To generate a value

var value = Arbitraty.GetNew<int>()    

To generate a range of values:

// generate a range of 12 random int
var value = Arbitraty.GetNewRange<int>(12)    

Static method generation use an internal, immutable default generator

ArbitraryGeneratorBag:

A default generator bag including every following types is available for usage and modification using ArbitratyPredefined static class

// retrieve a default generator:
var generator = ArbitratyPredefined.GetDefault();

Default generator included types

  • Int
  • Uint
  • Float
  • Long
  • Double
  • String
  • Char
  • Byte
  • Bool
  • DateTime
  • TimeSpan
  • Guid

You could also retrieve an empty one and populate it:

// retrieve an empty generator:
var emptyGenerator = ArbitratyPredefined.GetEmpty();

Add a specific generator

To add a generator, use the RegisterGenerator method:

// retrieve an empty generator:
var emptyGenerator = ArbitratyPredefined.GetEmpty();
    
// register a default int generator
emptyGenerator.RegisterGenerator(ArbitraryGeneratorPredefined.IntGenerator);

it could be chained in a fluent manner:

var generator = ArbitratyPredefined
                  .GetEmpty()                      
                  .RegisterGenerator(ArbitraryGeneratorPredefined.IntGenerator)
                  ...
                  .RegisterGenerator(ArbitraryGeneratorPredefined.DoubleGenerator);

When registering a generator, if a matching type is found, it is overriden

Types generators

Types generators inherit from ArbitraryGeneratorBase and define a GetNew.

you could create whatever generator suit your needs

About

Library used for generating arbitrary values for unit testing. Allow extension for your own type

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages