如何断言集合按FluentAssertions的2个属性排序?

时间:2016-06-14 16:20:14

标签: c# unit-testing fluent-assertions

我最近发现FluentAssertions有一个名为BeInAscendingOrder的集合断言。真棒!

public class MyItems
{
    public int SequenceNumber { get; set; }
    public int Name { get; set; }
}

IList<int> resultingList = myClassUnderTest.GetOrderedList();

resultingList.Should().BeInAscendingOrder(m => m.SequenceNumber);

但是现在我想测试一个列表是按2个属性排序的。这可能吗?

1 个答案:

答案 0 :(得分:5)

你不能真的。你在那里传递的lambda是在属性表达式中翻译的,而不是可执行的lambda语句。并且没有超载来提供您自己的IComparer实现。

您最好的选择是生成一个包含正确顺序的项目的集合,并将其与Should().Equal进行比较。这将断言两个集合包含相同顺序的相同元素。