Как проверить упорядоченность списка с помощью Fluent Assertions

Я пишу некоторые модульные тесты, используя specflow, и мне нужен способ проверить, упорядочен ли список объектов по определенному свойству. В настоящее время я делаю это так, но я не уверен, что это лучший способ сделать это.

var listFromApi = listOfObjects;

var sortedList = listFromApi.OrderBy(x => x.Property);

Assert.IsTrue(listFromApi.SequenceEqual(sortedList));

Есть ли хороший способ сделать это с помощью Fluent Assertions?


person TomJerrum    schedule 15.10.2015    source источник
comment
Возможный дубликат FluentAssertions: эквивалентность отсортированных списков   -  person Sam Holder    schedule 15.10.2015
comment
См. fluentassertions.com/documentation/#collections.   -  person Michael Freidgeim    schedule 11.09.2018


Ответы (2)


Да. Вы можете использовать BeInAscendingOrder с лямбдой.

listFromApi.Should().BeInAscendingOrder(x => x.Property);

Для дополнительной ясности за счет производительности вы также можете утверждать об эквивалентности контента:

listFromApi.Should().BeEquivalentTo(listOfObjects)
    .And.BeInAscendingOrder(x => x.Property);
person Paul Hicks    schedule 17.11.2015

Можно передать такие параметры, как:

listFromApi.Should().BeEquivalentTo(sortedList, opt => opt.WithStrictOrdering());
person Guilherme Porto    schedule 04.10.2019