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 = object1.IsDeepEqual(object2);
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.
object1.ShouldDeepEqual(object2);
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.
object1.WithDeepEqual(object2)
.SkipDefault<MyEntity>()
.IgnoreSourceProperty(x => x.Id)
.Assert()