11

我正在使用 specflow 编写一些单元测试,并且需要一种方法来检查对象列表是否按特定属性排序。目前我正在这样做,但我不确定这是否是最好的方法。

var listFromApi = listOfObjects;

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

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

有没有一种很好的方法可以使用 Fluent Assertions 来完成?

4

2 回答 2

23

是的。您可以使用BeInAscendingOrderlambda。

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

为了以牺牲性能为代价获得额外的清晰度,您还可以断言内容等效:

listFromApi.Should().BeEquivalentTo(listOfObjects)
    .And.BeInAscendingOrder(x => x.Property);
于 2015-11-17T00:20:19.047 回答
6

可以传递如下选项:

listFromApi.Should().BeEquivalentTo(sortedList, opt => opt.WithStrictOrdering());
于 2019-10-04T14:18:18.250 回答