Подтвердите, что по крайней мере один элемент в коллекции результатов соответствует предикату

Я хочу утверждать, что по крайней мере один элемент коллекции соответствует заданному предикату с NUnit. Я уже утверждал, что количество элементов больше 0, поэтому достаточно имитировать поведение метода Any() LINQ.

Я ищу что-то похожее:

Assert.That(resultEnumerable, Is.Any.Matching(x => x.Property == "x"));

Или хотя бы для:

Assert.That(resultEnumerable.Select(x => x.Property), Is.Any.EqualTo("x"));

К сожалению, кажется, что есть только ограничение Is.All и нет эквивалентного Is.Any - что я упускаю?

Примечание. Мне не нужен гораздо менее читаемый:

Assert.That(resultEnumerable.Any(x => x.Property == "x"), Is.True);

person D.R.    schedule 09.08.2016    source источник


Ответы (2)


Как насчет одного из этих?

Assert.That (resultEnumerable, Has.Some.Property ("Property").EqualTo ("x"));
Assert.That (resultEnumerable, Has.Some.Matches<X> (x => x.Property == "x"));
person Fabian Schmied    schedule 09.08.2016

Я нашел:

Assert.That (resultEnumerable.Select (x => x.Property), Has.Some.EqualTo ("x"));

Я бы все же предпочел решение, в котором мне больше не нужен Select().

person D.R.    schedule 09.08.2016