如何使用 FluentAssertions 断言集合按 2 个属性排序?
How can I assert a collection is sorted by 2 properties with FluentAssertions?
我最近发现 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
进行比较。这将断言两个集合包含相同顺序的相同元素。
我最近发现 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
进行比较。这将断言两个集合包含相同顺序的相同元素。