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