7.2 KiB
tags
tags | |||
---|---|---|---|
|
Утверждения для проверки наличия данных информационной базы
Большая часть тестируемых методов так или иначе оставляет свой след в информационной базе, создает или изменяет записи - документы, регистры, справочники и так далее.
Для проверки правильности работы таких методов нам необходимо проверить, что изменилось в базе. В этом могут помочь утверждения работающие с записями ИБ.
Доступ к этим утверждениям обеспечивает метод ЮТест.ОжидаетЧтоТаблицаБазы
, который возвращает инициализированный модуль ЮТУтвержденияИБ
, реализующий работу с утверждениями для ИБ.
Утверждения ИБ позволяют проверить наличие и отсутствие записей по различным условиям, которые задаются с помощью предикатов
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
.НеСодержитЗаписи(); // В базе нет товаров
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
.СодержитЗаписи(); // В базе есть товары
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
.СодержитЗаписи(ЮТест.Предикат() // В базе есть товары определенного поставщика
.Реквизит("Поставщик").Равно(ДанныеСправочника.Поставщик));
ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют")
.НеСодержитЗаписи(ЮТест.Предикат() // Курс валюты не установлен
.Реквизит("Валюта").Равно(ДанныеРегистра.Валюта)
.Реквизит("Период").БольшеИлиРавно(ДанныеРегистра.Период));
Доступные методы
СодержитЗаписи
- проверяет наличие записей по условиямНеСодержитЗаписи
- проверяет отсутствие записей по условиямСодержитЗаписиСНаименованием
- проверяет наличие в таблице записей с указанным наименованиемСодержитЗаписиСКодом
- проверяет наличие в таблице записей с указанным кодомСодержитЗаписиСНомером
- проверяет наличие в таблице записей с указанным номеромНеСодержитЗаписиСНаименованием
- проверяет отсутствие в таблице записей с указанным наименованиемНеСодержитЗаписиСКодом
- проверяет отсутствие в таблице записей с указанным кодомНеСодержитЗаписиСНомером
- проверяет отсутствие в таблице записей с указанным номером
Примеры
// Проверка и подготовка контекста
АртикулТовара = ЮТест.Данные().СлучайнаяСтрока();
УсловиеПоискаТовара = ЮТест.Предикат()
.Реквизит("Артикул").Равно(АртикулТовара)
.Получить(); // Необходимо для сохранения сформированного предиката в переменную
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар уже существует в базе")
.НеСодержитЗаписей(УсловиеПоискаТовара);
// Выполнение тестируемого метода
СоздатьТовар(АртикулТовара);
// Проверка результата
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар не был создан")
.СодержитЗаписи(УсловиеПоискаТовара);
// Проверим заполнение нового элемента
СозданныйТовар = ЮТЗапрос.Запись("Справочник.Товары", УсловиеПоискаТовара);
ЮТест.ОжидаетЧто(СозданныйТовар, "Данные нового товара")
.Заполнено()
.Свойство("Наименование").Заполнено()
.Свойство("Код").Заполнено()
.Свойство("Артикул").Заполнено();
:::tip Проверка заполнения
Не рекомендую использовать ЮТест.ОжидаетЧтоТаблицаБазы
проверки заполнения созданных/измененных данных.
Лучше сначала получить запись используя ЮТЗапрос.Запись
и с помощью ЮТест.ОжидаетЧто
проверить ее заполнение.
Разница будет в тексте ошибки:
ЮТест.ОжидаетЧтоТаблицаБазы
скажет, что запись в базе отсутствует, без разницы, был ли создан товар или он был некорректно заполнен.ЮТЗапрос.Запись
+ЮТест.ОжидаетЧто
позволит отдельно проверить наличе записи в базе и корректность заполнения.
При отсутствии будет выдана ошибка, что данные не заполнены, а при некорректном заполнении сообщит, какое свойство не заполнено. :::