我最近发现 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
进行比较。这将断言两个集合包含相同顺序的相同元素。
关于c# - 如何使用 FluentAssertions 断言集合按 2 个属性排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37817344/