Есть множество способов достичь этого
- Использование https://fluentassertions.com/objectgraphs/ (Самый простой и быстрый способ)
List1e.Should().BeEquivalentTo(List2e);
Переместить все отдельные сравнения в метод .Equals
(Или реализовать IEqualityComparer
)
Построить вспомогательный метод, который перебирает свойства publi c по отражению и отстаивать каждое свойство
public static void PropertyValuesAreEquals(object actual, object expected) {
PropertyInfo[] properties = expected.GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
object expectedValue = property.GetValue(expected, null);
object actualValue = property.GetValue(actual, null);
if (!Equals(expectedValue, actualValue))
Assert.Fail("Property {0}.{1} does not match. Expected: {2} but was: {3}", property.DeclaringType.Name, property.Name, expectedValue, actualValue);
//……………………………….
}
Используйте JSON для сравнения данных объекта
public static void AreEqualByJson(object expected, object actual)
{
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var expectedJson = serializer.Serialize(expected);
var actualJson = serializer.Serialize(actual);
Assert.AreEqual(expectedJson, actualJson);
}
Использование
Ограничения свойств (NUnit 2.4.2)