TestDataFramework.dll 2.2.2

There is a newer version of this package available.
See the version list below for details.
Install-Package TestDataFramework.dll -Version 2.2.2
dotnet add package TestDataFramework.dll --version 2.2.2
<PackageReference Include="TestDataFramework.dll" Version="2.2.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TestDataFramework.dll --version 2.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TestDataFramework.dll, 2.2.2"
#r directive can be used in F# Interactive, C# scripting and .NET Interactive. Copy this into the interactive tool or source code of the script to reference the package.
// Install TestDataFramework.dll as a Cake Addin
#addin nuget:?package=TestDataFramework.dll&version=2.2.2

// Install TestDataFramework.dll as a Cake Tool
#tool nuget:?package=TestDataFramework.dll&version=2.2.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

This is a unit testing tool. It randomizes values in your classes automatically so you don't need to do data entry.

This tool includes the optional ability to write out objects to a database for tests which involve data access.

To get an object value quickly on the fly:

IPopulator populator = StaticPopulatorFactory.CreateMemoryPopulator();

SubjectClass subject = populator.Add<SubjectClass>().Make();

// Or

// Makes five objects
IEnumerable<SubjectClass> subjectSet = populator.Add<SubjectClass>(5).Make();

The above example uses the in-memory populator.

DON'T use the Make() or MakeAndBind() methods with the SQL Server populator unless you know what you are doing. They will write to the database immediately.

Go to the Wiki for more.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
3.5.3 368 9/25/2021
3.5.1 609 3/31/2019
3.5.0 469 3/3/2019
3.4.1 544 2/20/2019
3.4.0 533 2/19/2019
3.3.5 605 12/1/2018
3.3.4 543 11/26/2018
3.3.3 510 11/22/2018
3.3.2 543 11/5/2018
3.3.1 577 11/2/2018
3.3.0 523 10/29/2018
3.2.1 600 10/25/2018
3.2.0 572 10/25/2018
3.1.4 620 10/9/2018
3.1.3 599 10/9/2018
3.1.2 623 10/8/2018
3.1.1 572 9/22/2018
3.0.1 610 8/26/2018
2.4.0 962 1/22/2018
2.2.4 719 1/19/2018 813 1/12/2018 733 12/13/2017
2.2.2 819 12/9/2017
2.2.1 754 12/4/2017
2.2.0 755 11/22/2017
2.1.0 1,000 10/30/2017 714 7/11/2017 640 7/9/2017 594 7/9/2017 588 7/9/2017
2.0.4 640 7/6/2017
2.0.3 593 7/2/2017
2.0.2 715 1/9/2017
2.0.1 754 12/7/2016

* Bug fix. A combination of explicit/deep property setting and collections in the target object were
causing a null ref exception.

* Fixed bug in deep explicit property setting, same issue as in It's a relatively rare edge case.
Calling Make/BindAndMake on an operable list will call the persistence layer only once for entire list.
Was calling once per element. Will save database round trips when DB populator is used.

* Deep explicit setting of properties.

* Introduction of the ability to get a value immediately by calling Make() or BindAndMake().
This is without needing to call IPopulator.Bind() separately to get values on the whole set
of requested objects.

* Bug Fix. Setting explicit value off of an interface didn't identify the concrete object's
actual (derived) type. Under these conditions, properties weren't being explicitly set
on the object instance.

* Assembly version properties correction.

* Syncing C# and Sql Server DateTime values for the Sql Server populator.
Milliseconds were being truncated on Sql Server but not in C#.

* Extra guard when accessing types from assemblies to be scanned.
Was throwing a ReflectionTypeLoadException for a particular assembly/type.


* Bug fix: Guid / uniqueidentifier in Sql Server now supported.


* Foreign keys can be explicitly set. Framework will not enforce referential integrity for those
properties if so.

Allows you to set a foreign key to null if the matching primary key table isn't in the C# model.
Referential integrity errors on the database server can occur if you introduce them this way.

* Internal methods/members of public facing types are marked as internal (or internal protected)
to reduce user's intellisense noise.

* Skipping assemblies that are not found in the file system during scannig of referenced
assemblies for primary/foreign table class matches. An exception had been occuring for some
assemblies, possibly becasue they were not in the bin folder due to being in the GAC.

* Adding an AppSettings key to explicitly enable or disable log messages. The key is:
"TestDataFramework-EnableLogger". The value to enable logging is "true".


Documentation is up to date on GitHub.

*  Guarantee methods work with primary keys properly.


* RecordReference.Set method fix.

* Guarantee... methods fix.