1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-20 20:55:11 +02:00
Koryakin Aleksey 004f5b1267
Предикаты (#54)
* Предикаты
2023-04-29 01:18:48 +03:00

2.7 KiB

Предикаты

Механизм предикатов позволяет:

  • Формировать наборы утверждений и передавать в методы проверки
  • Методы для формирования предикатов имеют такой же синтаксис как и утверждения для тестов (ЮТест.ОжидаетЧто())
  • Проверять элементы коллекций на соответствие утверждениям

Например

    ЮТест.ОжидаетЧто(Коллекция)
        .ЛюбойЭлементСоответствуетПредикату(Ютест.Предикат()
            .Реквизит("Число").Равно(2)); // Проверят, что в коллекции есть элементы с реквизитом `Число`, которое равно `2`
    
    ЮТест.ОжидаетЧто(Коллекция)
        .КаждыйЭлементСоответствуетПредикату(Ютест.Предикат()
            .Заполнено().ИмеетТип("Массив")); // Проверят, что каждый элемент коллекции это заполненный массив

Планы развития

  • Описания параметров метода при мокировании

    Например, имеем метод, который принимает в параметрах структуру. Необходимо вернуть 2 разных результата в зависимости от значения реквизита входной структуры.

    Мокито.Обучение(Модуль)
        .Когда(Модуль.Посчитать(Мокито.Предикат()
                .Реквизит("Оператор").Равно("Сложить")))
        .ВернутьРезультат(Результат1)
    
        .Когда(Модуль.Посчитать(Мокито.Предикат()
                .Реквизит("Оператор").Равно("Вычесть")))
        .ВернутьРезультат(Результат2);
    
  • Утверждения, проверяющие данные в базе на основании предикатов.

    ЮТест.ОжидаетЧтоТаблица("Справочник.Товары").СодержитЗаписи(
        ЮТест.Предикат()
            .Реквизит("Наименование").Равно("Товар 1")
            .Реквизит("Ссылка").НеРавно(Исключение)
    );
    
  • Перевести обычные утверждения на предикаты