TestDataFramework.dll 2.1.0

There is a newer version of this package available.
See the version list below for details.
Install-Package TestDataFramework.dll -Version 2.1.0
dotnet add package TestDataFramework.dll --version 2.1.0
<PackageReference Include="TestDataFramework.dll" Version="2.1.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add TestDataFramework.dll --version 2.1.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: TestDataFramework.dll, 2.1.0"
#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.1.0

// Install TestDataFramework.dll as a Cake Tool
#tool nuget:?package=TestDataFramework.dll&version=2.1.0
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 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 541 11/5/2018
3.3.1 575 11/2/2018
3.3.0 521 10/29/2018
3.2.1 598 10/25/2018
3.2.0 571 10/25/2018
3.1.4 620 10/9/2018
3.1.3 599 10/9/2018
3.1.2 622 10/8/2018
3.1.1 572 9/22/2018
3.0.1 610 8/26/2018
2.4.0 960 1/22/2018
2.2.4 717 1/19/2018 813 1/12/2018 733 12/13/2017
2.2.2 816 12/9/2017
2.2.1 754 12/4/2017
2.2.0 752 11/22/2017
2.1.0 993 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

* 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.