我最近发现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个属性排序的。这可能吗?
答案 0 :(得分:5)
你不能真的。你在那里传递的lambda是在属性表达式中翻译的,而不是可执行的lambda语句。并且没有超载来提供您自己的IComparer实现。
您最好的选择是生成一个包含正确顺序的项目的集合,并将其与Should().Equal
进行比较。这将断言两个集合包含相同顺序的相同元素。