Как я могу сделать что-то подобное в 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>
.
Ну, вы можете преобразовать 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));
Что, если вы попробуете что-то вроде этого:
List<Foo> someFoos = GetSomeFoos();
как List<T>
реализует интерфейс ICollection
.
Хорошо, вы могли бы концептуально использовать linq для расширений объектов, что-то вроде:
Ожидайте (someAs.Count(), Has.Some.EqualTo(7));