# Предикаты Механизм предикатов позволяет: * Формировать наборы утверждений и передавать в методы проверки * Методы для формирования предикатов имеют такой же синтаксис как и утверждения для тестов (`ЮТест.ОжидаетЧто()`) * Проверять элементы коллекций на соответствие утверждениям Например ```bsl ЮТест.ОжидаетЧто(Коллекция) .ЛюбойЭлементСоответствуетПредикату(Ютест.Предикат() .Реквизит("Число").Равно(2)); // Проверят, что в коллекции есть элементы с реквизитом `Число`, которое равно `2` ЮТест.ОжидаетЧто(Коллекция) .КаждыйЭлементСоответствуетПредикату(Ютест.Предикат() .Заполнено().ИмеетТип("Массив")); // Проверят, что каждый элемент коллекции это заполненный массив ``` ## Планы развития * Описания параметров метода при мокировании Например, имеем метод, который принимает в параметрах структуру. Необходимо вернуть 2 разных результата в зависимости от значения реквизита входной структуры. ```bsl Мокито.Обучение(Модуль) .Когда(Модуль.Посчитать(Мокито.Предикат() .Реквизит("Оператор").Равно("Сложить"))) .ВернутьРезультат(Результат1) .Когда(Модуль.Посчитать(Мокито.Предикат() .Реквизит("Оператор").Равно("Вычесть"))) .ВернутьРезультат(Результат2); ``` * Утверждения, проверяющие данные в базе на основании предикатов. ```bsl ЮТест.ОжидаетЧтоТаблица("Справочник.Товары").СодержитЗаписи( ЮТест.Предикат() .Реквизит("Наименование").Равно("Товар 1") .Реквизит("Ссылка").НеРавно(Исключение) ); ``` * Перевести обычные утверждения на предикаты