mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-23 21:09:24 +02:00
49 lines
2.7 KiB
Markdown
49 lines
2.7 KiB
Markdown
# Предикаты
|
|
|
|
Механизм предикатов позволяет:
|
|
|
|
* Формировать наборы утверждений и передавать в методы проверки
|
|
* Методы для формирования предикатов имеют такой же синтаксис как и утверждения для тестов (`ЮТест.ОжидаетЧто()`)
|
|
* Проверять элементы коллекций на соответствие утверждениям
|
|
|
|
Например
|
|
|
|
```bsl
|
|
ЮТест.ОжидаетЧто(Коллекция)
|
|
.ЛюбойЭлементСоответствуетПредикату(Ютест.Предикат()
|
|
.Реквизит("Число").Равно(2)); // Проверят, что в коллекции есть элементы с реквизитом `Число`, которое равно `2`
|
|
|
|
ЮТест.ОжидаетЧто(Коллекция)
|
|
.КаждыйЭлементСоответствуетПредикату(Ютест.Предикат()
|
|
.Заполнено().ИмеетТип("Массив")); // Проверят, что каждый элемент коллекции это заполненный массив
|
|
```
|
|
|
|
## Планы развития
|
|
|
|
* Описания параметров метода при мокировании
|
|
|
|
Например, имеем метод, который принимает в параметрах структуру. Необходимо вернуть 2 разных результата в зависимости от значения реквизита входной структуры.
|
|
|
|
```bsl
|
|
Мокито.Обучение(Модуль)
|
|
.Когда(Модуль.Посчитать(Мокито.Предикат()
|
|
.Реквизит("Оператор").Равно("Сложить")))
|
|
.ВернутьРезультат(Результат1)
|
|
|
|
.Когда(Модуль.Посчитать(Мокито.Предикат()
|
|
.Реквизит("Оператор").Равно("Вычесть")))
|
|
.ВернутьРезультат(Результат2);
|
|
```
|
|
|
|
* Утверждения, проверяющие данные в базе на основании предикатов.
|
|
|
|
```bsl
|
|
ЮТест.ОжидаетЧтоТаблица("Справочник.Товары").СодержитЗаписи(
|
|
ЮТест.Предикат()
|
|
.Реквизит("Наименование").Равно("Товар 1")
|
|
.Реквизит("Ссылка").НеРавно(Исключение)
|
|
);
|
|
```
|
|
|
|
* Перевести обычные утверждения на предикаты
|