Как сравнить списки, используя fluent-assertions?

Я хочу сравнить список объектов, игнорируя порядок объектов в списке и сравнивая только некоторые свойства в объектах, в настоящее время я использую следующий код для выполнения этого сравнения:

actual.Should().NotBeNull();
actual.Count.Should().Be(expected.Count);
//compare ignoring order
foreach (var exp in expected)
    actual.Should().Contain(act =>
        act.IndividualId.Equals(exp.IndividualId)
        && act.Email.Equals(exp.Email)
        && act.FirstName.Equals(exp.FirstName)
        && act.LastName.Equals(exp.LastName)
    );

однако это кажется менее идеальным, так как при сбое вы не получаете распечатку ожидаемых значений. Есть ли встроенный механизм для выполнения этого сравнения с использованием fluent assertions?

1 ответов


Не сейчас. У нас есть новый эквивалентности утверждение синтаксис FA 2.0, но это также проверит, отображаются ли объекты в правильном порядке. Для FA 2.1 я пытаюсь поддержать это, но я еще не уверен, что это сработает. Это в основном означает, что он должен сравнить весь график объекта за элементом коллекции с графиками объектов для каждого другого элемента в коллекции. Конечно, это будет довольно медленно.