NUnit CollectionConstraints exceptions
本文关键字:exceptions CollectionConstraints NUnit | 更新日期: 2023-09-27 18:15:11
我在。net 3.5 c#应用程序中使用NUnit 2.5.6.10205。我使用NUnit的集合约束来断言IEnumerable是否按参数排序。
它似乎对我不起作用,因为我得到一个异常,表明我的实际值不是IEnumreable。allEntities是实现IEnumerable<T>
的List<T>
。我相信NUnit正在寻找一个IEnumerable
,而不是IEnumerable<T>
,但是IEnumerable<T>
实现了IEnumerable
。这是一个co/contra variance的问题吗?
Assert.That(allEntities, Is.All.Ordered.By("CreationDate"));
.
System.ArgumentException : The actual value must be an IEnumerable
Parameter name: actual
另外,是否有某种方式我可以使用Lambda来表达排序属性?
我使用的是All约束,但这是用来对列表中的每个项目进行断言的,即
// checks that for each T in myList, that it is greater than 5
Assert.That(myList, Is.All.GreaterThan(5));
From NUnit: "对集合中的每个元素应用约束,只有当所有元素都成功时才成功。"
我想测试列表本身的一个属性,所以我想:
// checks that the list itself is ordered by the property CreationDate
Assert.That(allEntities, Is.Ordered.By("CreationDate"));
希望将来有人会觉得这个问题/答案有用。
不需要All
,试试:
Assert.That(allEntities, Is.Ordered.By("CreationDate"));