See the version list below for details.
Install-Package TestDataFramework.dll -Version 2.2.1
dotnet add package TestDataFramework.dll --version 2.2.1
<PackageReference Include="TestDataFramework.dll" Version="2.2.1" />
paket add TestDataFramework.dll --version 2.2.1
#r "nuget: TestDataFramework.dll, 2.2.1"
// Install TestDataFramework.dll as a Cake Addin #addin nuget:?package=TestDataFramework.dll&version=2.2.1 // Install TestDataFramework.dll as a Cake Tool #tool nuget:?package=TestDataFramework.dll&version=2.2.1
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.
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
* Fixed bug in deep explicit property setting, same issue as in 220.127.116.11. 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.