Asserter
The Asserter tool provides methods to verify common test scenarios:
CheckAll- Verifies multiple cases and aggregates failure.Throws- Verifies an exception is thrown.IsEmpty- Verifies a collection has no elements.IsNotEmpty- Verifies a collection has elements.HasCount- Verifies a collection has a certain number of elements.Is- Short forValuesEqual.IsNot- Short forValuesNotEqual.ValuesEqual- Verifies two objects are equal by value.ValuesNotEqual- Verifies two objects are not equal by value.ReferenceEqual- Verifies two objects are equal by reference.ReferenceNotEqual- Verifies two objects are not equal by reference.Fail- Immediately fails the test.
Example
/// <summary>Test that will fail.</summary>
[Theory, RandomData]
public void Tools_DataSampleExample(DataSample original)
{
Tools.Asserter.Is(original, Tools.Mutator.Variant(original));
}
Which gives the following message detailing the differences:
Result Message:
Test method CreateAndFakeTests.ToolsTests.Tools_DataSampleExample threw
exception:
CreateAndFake.Toolbox.AsserterTool.AssertException: Value equality failed
for type 'DataSample'.
Content:
.NestedValue.StringValue -> Expected:<CYTsi8X>, Actual:<0RIXwSBI>
.NestedValue.NumberValue -> Expected:<-1982040207>, Actual:<2375491997>
Creation & Customization
The Asserter requires a Valuer which controls the equality testing behavior.
Unlike the other tools, the Asserter can be subclassed to add new methods or override any method to provide different behavior.