Платформа Fluent Assertions предоставляет множество связанных с коллекцией утверждений .
Для проверки, содержит ли данная коллекция элемент, удовлетворяющий определенному условию, Iможно использовать Should().Contain
:
items.Should().Contain(item => item.Job == Job.Pilot, "because each plane has a pilot");
Я могу убедиться, что только один соответствующий элемент:
items.Should().ContainSingle(item => item.Job == Job.Pilot, "because each plane has one pilot");
Я также могу проверить все элементов, основанных на выражениях (предположительно, независимо от порядка, хотя документы немного расплывчаты по этому поводу):
items.Should().SatisfyRespectively(
item => item.Job == Job.Pilot,
item => item.Job == Job.CoPilot,
item => item.Job == Job.FlightAttendant,
item => item.Job == Job.FlightAttendant,
item => item.Job == Job.FlightAttendant,
item => item.Job == Job.FlightAttendant
);
Как я могу проверить, является ли указанное количество элементов (ни в какой конкретной позициив перечислении) соответствует заданному условию, игнорируя остальные?
Я представляю что-то вроде
items.Should().ContainMultiple(4, item => item.Job == Job.FlightAttendant);
или даже
items.Should().Times(4).Contain(item => item.Job == Job.FlightAttendant);
, ноЯ ничего не нашел в документах.
Я знаю, что могу предварительно отфильтровать свою коллекцию с обычной System.Linq
функциональностью , но, конечно, это противоречит (разумно) рекомендация , что
Имея в утверждении Должность () как можно раньше, мы можем включить больше информации в сообщения об ошибках.
Это как-то поддерживается, или это должно куда-то входить в запрос функции?