/DeepEqual

An extensible deep comparison for .NET

Primary LanguageC#MIT LicenseMIT

DeepEqual

DeepEqual is an extensible deep equality comparison library.

Installing

Install via NuGet (https://www.nuget.org/packages/DeepEqual/)

Install-Package DeepEqual

Usage

To test equality simply call the IsDeepEqual extension method.

bool result = left.IsDeepEqual(right);

When used inside a test you might want to call ShouldDeepEqual instead. This method throws an exception with a detailed description of the differences between the 2 objects.

left.ShouldDeepEqual(right);

// or

left.ShouldDeepEqual(right, comparison);

You can pass a custom comparison as the second argument to the ShouldDeepEqual method to override the default behaviour. You can also customize the behaviour inline using the WithDeepEqual extension method.

left.WithDeepEqual(right)
       .SkipDefault<MyEntity>()
       .IgnoreLeftProperty(x => x.Id)
       .Assert()