2016-06-14 40 views
0

我最近发现FluentAssertions有一个名为BeInAscendingOrder的集合断言。真棒!我如何声明一个集合是通过2个属性与FluentAssertions排序?

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个属性排序。这可能吗?

回答

3

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

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

相关问题