Skip to main content
 首页 » 编程设计

c#之如何使用 FluentAssertions 断言集合按 2 个属性排序

2024年01月26日22mengfanrong

我最近发现 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 个属性排序。这可能吗?

请您参考如下方法:

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

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