Compare-Net-Objects alternatives and similar packages
Based on the "Testing" category.
Alternatively, view Compare-Net-Objects alternatives based on common mentions on social networks and blogs.
-
Fluent Assertions
A set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test -
AutoFixture
AutoFixture is an open source framework for .NET designed to minimize the 'Arrange' phase of your unit tests -
Shouldly
Shouldly is an assertion framework which focuses on giving great error messages when the assertion fails while being simple and terse. -
Machine.Specifications
Machine.Specifications (MSpec) is a context/specification framework that removes language noise and simplifies tests. -
GenFu
GenFu is a library you can use to generate realistic test data. It is composed of several property fillers that can populate commonly named properties through reflection using an internal database of values or randomly created data. You can override any of the fillers, give GenFu hints on how to fill them. -
Expecto
A smooth testing framework for F# with tests as values. Unit testing, property based testing, performance testing and stress testing. -
xBehave.net
A BDD/TDD framework based on xUnit.net and inspired by Gherkin. http://xbehave.github.io -
SpecsFor
SpecsFor is a light-weight Behavior-Driven Development framework that focuses on ease of use for *developers* by minimizing testing friction. -
SimpleStubs
*SimpleStubs* is a simple mocking framework that supports Universal Windows Platform (UWP), .NET Core and .NET framework. SimpleStubs is currently developed and maintained by Microsoft BigPark Studios in Vancouver. -
ExpressionToCode
Use plain C# syntax in assertions that include both the expression expression and subexpression values in the failure message. -
ArchUnitNET
Simple library for checking the architecture of C# code with a fluent API. -
snapshooter
Snapshooter is a snapshot testing tool for .NET Core and .NET Framework -
Fine Code Coverage
Visualize unit test code coverage easily for free in Visual Studio Community Edition (and other editions too) -
ReportPortal
AI-powered Test Automation Dashboard. Acquire, aggregate and analyze test reports to ascertain release health. -
NCrunch
An automated continuous & concurrent testing tool for Visual Studio. [$]
Pixel-Perfect Multi-Platform Applications with C# and XAML
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Compare-Net-Objects or a related project?
README
Project Description
What you have been waiting for. Perform a deep compare of any two .NET objects using reflection. Shows the differences between the two objects.
Compatibility
- Compatible with .NET Framework 4.0 and higher.
- .NET Standard 1.3 Build Compatible with .NET Core 1.0, Mono 4.6, Xamarin.iOS 10.0, Xamarin.Mac 3.0, Xamarin.Android 7.0, Universal Windows Platform 10.0
- .NET Standard 2.0 Build Compatible with .NET Core 2.0, Mono 5.4, Xamarin.iOS 10.14, Xamarin.Mac 3.8, Xamarin.Android 8.0, Universal Windows Platform 10.0.16299
NuGet Package
http://www.nuget.org/packages/CompareNETObjects
Installation
Install with NuGet Package Manager Console
Install-Package CompareNETObjects
Install with .NET CLI
dotnet add package CompareNETObjects
Features
Feature Overview
- Compare Children (on by default)
- Handling for Trees with Children Pointing To Parents (Circular References)
- Compares Publicly Visible Class Fields and Properties
- Compares Private Fields and Properties (off by default)
- Source code in C#
- NUnit Test Project Included with over 200+ unit tests
- Ability to load settings from a config file for use with powershell
- Ability to pass in the configuration
- Ability to save and load the configuration as json
- Test Extensions .ShouldCompare and .ShouldNotCompare
- Several configuration options for comparing private elements, ignoring specific elements, including specific elements.
- Property and Field Info reflection caching for increased performance
- Rich Differences List or simple DifferencesString
- Difference Callback
- Supports custom comparison for types and properties
- ElapsedMilliseconds indicates how long the comparison took
- Thread Safe
- Beyond Compare Report
- WinMerge Report
- CSV Report
- User Friendly Report
- HTML Report
Options
- Ability to IgnoreCollectionOrder to compare lists of different lengths
- Ability to ignore indexer comparison
- Ability to ignore types
- Ability to ignore specific members by name or by wildcard
- Interface member filtering
- Ability to treat string.empty and null as equal
- Ability to ignore string leading and trailing whitespace
- Case insensitive option for strings
- Ignore millisecond differences between DateTime values or DateTimeOffset values
- Precision for double or decimal values
Supported Types
- Classes
- Dynamic (Expando objects are supported but not DynamicObject)
- Anonymous Types
- Primitive Types (String, Int, Boolean, etc.)
- Structs
- IList Objects
- Collections
- Single and Multi-Dimensional Arrays
- Immutable Arrays
- IDictionary Objects
- Enums
- Timespans
- Guids
- Classes that Implement IList with Integer Indexers
- DataSet Data
- DataTable Data
- DataRow Data
- DataColumn Differences
- LinearGradient
- HashSet
- URI
- IPEndPoint
- Types of Type (RuntimeType)
- StringBuilder
- SByte
Limitations
- Custom Collections with Non-Integer Indexers cannot be compared.
- Private properties and fields cannot be compared for .NET Core 1.3. They are allowed to be compared in .NET Core 2.0 and higher.
- DynamicObject type is not supported but will be implemented in 2020 when the library is versioned to .NET Framework 4.5
- When ignoring the collection order, the collection matching spec must be a property on the class. It cannot be a field or a property on a child or parent class. The property has to be a simple type.
Getting Started
https://github.com/GregFinzer/Compare-Net-Objects/wiki/Getting-Started
Help File
Licensing
https://github.com/GregFinzer/Compare-Net-Objects/wiki/Licensing