1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-04-23 11:48:39 +02:00
2024-03-28 21:18:51 +03:00

7.2 KiB

tags
tags
Начало
Утверждения
ДанныеИБ

Утверждения для проверки наличия данных информационной базы

Большая часть тестируемых методов так или иначе оставляет свой след в информационной базе, создает или изменяет записи - документы, регистры, справочники и так далее.
Для проверки правильности работы таких методов нам необходимо проверить, что изменилось в базе. В этом могут помочь утверждения работающие с записями ИБ.

Доступ к этим утверждениям обеспечивает метод ЮТест.ОжидаетЧтоТаблицаБазы, который возвращает инициализированный модуль ЮТУтвержденияИБ, реализующий работу с утверждениями для ИБ.

Утверждения ИБ позволяют проверить наличие и отсутствие записей по различным условиям, которые задаются с помощью предикатов

ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
    .НеСодержитЗаписи(); // В базе нет товаров

ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
    .СодержитЗаписи(); // В базе есть товары

ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
    .СодержитЗаписи(ЮТест.Предикат() // В базе есть товары определенного поставщика
        .Реквизит("Поставщик").Равно(ДанныеСправочника.Поставщик));

ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют")
    .НеСодержитЗаписи(ЮТест.Предикат() // Курс валюты не установлен
        .Реквизит("Валюта").Равно(ДанныеРегистра.Валюта)
        .Реквизит("Период").БольшеИлиРавно(ДанныеРегистра.Период));

Доступные методы

Примеры

// Проверка и подготовка контекста
АртикулТовара = ЮТест.Данные().СлучайнаяСтрока();
УсловиеПоискаТовара = ЮТест.Предикат()
    .Реквизит("Артикул").Равно(АртикулТовара)
    .Получить(); // Необходимо для сохранения сформированного предиката в переменную

ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар уже существует в базе")
    .НеСодержитЗаписей(УсловиеПоискаТовара);

// Выполнение тестируемого метода
СоздатьТовар(АртикулТовара);

// Проверка результата
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар не был создан")
    .СодержитЗаписи(УсловиеПоискаТовара);

// Проверим заполнение нового элемента
СозданныйТовар = ЮТЗапрос.Запись("Справочник.Товары", УсловиеПоискаТовара);
ЮТест.ОжидаетЧто(СозданныйТовар, "Данные нового товара")
    .Заполнено()
    .Свойство("Наименование").Заполнено()
    .Свойство("Код").Заполнено()
    .Свойство("Артикул").Заполнено();

:::tip Проверка заполнения Не рекомендую использовать ЮТест.ОжидаетЧтоТаблицаБазы проверки заполнения созданных/измененных данных. Лучше сначала получить запись используя ЮТЗапрос.Запись и с помощью ЮТест.ОжидаетЧто проверить ее заполнение.

Разница будет в тексте ошибки:

  • ЮТест.ОжидаетЧтоТаблицаБазы скажет, что запись в базе отсутствует, без разницы, был ли создан товар или он был некорректно заполнен.
  • ЮТЗапрос.Запись + ЮТест.ОжидаетЧто позволит отдельно проверить наличе записи в базе и корректность заполнения.
    При отсутствии будет выдана ошибка, что данные не заполнены, а при некорректном заполнении сообщит, какое свойство не заполнено. :::