Вы можете использовать LINQ:
Assert.That(people.Any(p => p.Name == "joe"));
или, если вы хотите прямо указать, что с каждым именем ровно один человек:
Assert.That(people.Count(p => p.Name == "joe"), Is.EqualTo(1));
Если вам нужно более качественное сообщение об ошибке, чем «Утверждение не выполнено, ожидалось, что истина - ложь», вы можете создать свой собственный метод подтверждения.
Для нескольких утверждений, связанных с коллекциями, CollectionAssert
очень полезен - например, он позволяет проверить, содержат ли две коллекции одинаковые элементы независимо от их порядка. Итак, еще одна возможность:
CollectionAssert.AreEquivalent(new[] {"joe", "fred", "jenny"}, people.Select(p => p.Name).ToList());
Обратите внимание, что CollectionAssert.AreEquivalent()
немного требователен к типам, которые он принимает (даже если подпись принимает IEnumerable
). Я обычно заключаю его в другой метод, который вызывает ToList()
для обоих параметров перед вызовом CollectionAssert.AreEquivalent()
.