Как можно проверить общие коллекции в nunit?

2

Как я могу сделать что-то подобное в NUnit?

class Foo
{
    int Value { get; set; }
    ...
}
...
ICollection<Foo> someFoos = GetSomeFoos();
Expect(List.Map(someFoos).Property("Value"), Has.Some.EqualTo(7));

List.Map() принимает только ICollection, а не ICollection<T>.

Теги:
nunit

3 ответа

0
Лучший ответ

Ну, вы можете преобразовать ICollection<T> в то, что реализует ICollection. Например, массив:

ICollection<Foo> someFoos = GetSomeFoos();
var array = new Foo[10];
someFoos.CopyTo(array);
Expect(List.Map(array).Property("Value"), Has.Some.EqualTo(7));
0

Что, если вы попробуете что-то вроде этого:

List<Foo> someFoos = GetSomeFoos();

как List<T> реализует интерфейс ICollection.

0

Хорошо, вы могли бы концептуально использовать linq для расширений объектов, что-то вроде:

Ожидайте (someAs.Count(), Has.Some.EqualTo(7));

  • 0
    Я не пытаюсь проверить количество элементов в someFoos, но некоторые элементы имеют свойство Value, равное 7.
  • 0
    Хорошо, это был только пример. Вы также можете легко использовать другое расширение, например, оператор Any. someAs.Any (a => a.Value == 7)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню