如何检查列表是使用Fluent断言进行排序的

Tom*_*rum 4 c# unit-testing list fluent-assertions

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

var listFromApi = listOfObjects;

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

Assert.IsTrue(listFromApi.SequenceEqual(sortedList));
Run Code Online (Sandbox Code Playgroud)

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

Pau*_*cks 12

是.你可以使用BeInAscendingOrderlambda.

listFromApi.Should().BeInAscendingOrder(x => x.Property);
Run Code Online (Sandbox Code Playgroud)

为了更加清晰而牺牲性能,您还可以在内容等效性上断言:

listFromApi.Should().BeEquivalentTo(listOfObjects)
    .And.BeInAscendingOrder(x => x.Property);
Run Code Online (Sandbox Code Playgroud)


Gui*_*rto 5

可以传递以下选项:

listFromApi.Should().BeEquivalentTo(sortedList, opt => opt.WithStrictOrdering());
Run Code Online (Sandbox Code Playgroud)