NUnit CollectionConstraints исключения - PullRequest
2 голосов
/ 18 ноября 2011

Я использую NUnit 2.5.6.10205 в приложении .NET 3.5 C #.Я использую NUnit Collection Constraint , чтобы утверждать, отсортирован ли IEnumerable по параметру.

Кажется, это не работает для меня, поскольку я получаю исключение, указывающее, что мое фактическое значение не является IEnumreable.allEntities - это List<T>, который реализует IEnumerable<T>.Я считаю, что NUnit ищет IEnumerable, а не IEnumerable<T>, но IEnumerable<T> реализует IEnumerable.Является ли это проблемой дисперсии co / contra?

Assert.That(allEntities, Is.All.Ordered.By("CreationDate"));

.

System.ArgumentException : The actual value must be an IEnumerable
Parameter name: actual

Кроме того, есть ли способ выразить свойство сортировки с помощью лямбды?Использование литеральной строки для свойства делает его хрупким.

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Я использовал Contstraint 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"));

Надеюсь, кто-то еще найдет этот вопрос/ ответ полезен в будущем.

1 голос
/ 18 ноября 2011

Нет необходимости в All, попробуйте:

Assert.That(allEntities, Is.Ordered.By("CreationDate"));
...