DeepEqual is an extensible deep equality comparison library.
Install via NuGet (https://www.nuget.org/packages/DeepEqual/)
Install-Package DeepEqual
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()