mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-04-23 11:48:39 +02:00
80 lines
7.2 KiB
Markdown
80 lines
7.2 KiB
Markdown
|
---
|
||
|
tags: [Начало, Утверждения, ДанныеИБ]
|
||
|
---
|
||
|
|
||
|
# Утверждения для проверки наличия данных информационной базы
|
||
|
|
||
|
Большая часть тестируемых методов так или иначе оставляет свой след в информационной базе, создает или изменяет записи - документы, регистры, справочники и так далее.
|
||
|
Для проверки правильности работы таких методов нам необходимо проверить, что изменилось в базе. В этом могут помочь утверждения работающие с записями ИБ.
|
||
|
|
||
|
Доступ к этим утверждениям обеспечивает метод [`ЮТест.ОжидаетЧтоТаблицаБазы`](/api/ЮТест#ожидаетчтотаблицабазы), который возвращает инициализированный модуль [`ЮТУтвержденияИБ`](/api/ЮТУтвержденияИБ), реализующий работу с утверждениями для ИБ.
|
||
|
|
||
|
Утверждения ИБ позволяют проверить наличие и отсутствие записей по различным условиям, которые задаются с помощью [предикатов](../predicates.md)
|
||
|
|
||
|
```bsl
|
||
|
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
|
||
|
.НеСодержитЗаписи(); // В базе нет товаров
|
||
|
|
||
|
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
|
||
|
.СодержитЗаписи(); // В базе есть товары
|
||
|
|
||
|
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары")
|
||
|
.СодержитЗаписи(ЮТест.Предикат() // В базе есть товары определенного поставщика
|
||
|
.Реквизит("Поставщик").Равно(ДанныеСправочника.Поставщик));
|
||
|
|
||
|
ЮТест.ОжидаетЧтоТаблицаБазы("РегистрСведений.КурсыВалют")
|
||
|
.НеСодержитЗаписи(ЮТест.Предикат() // Курс валюты не установлен
|
||
|
.Реквизит("Валюта").Равно(ДанныеРегистра.Валюта)
|
||
|
.Реквизит("Период").БольшеИлиРавно(ДанныеРегистра.Период));
|
||
|
```
|
||
|
|
||
|
## Доступные методы
|
||
|
|
||
|
* [`СодержитЗаписи`](/api/ЮТУтвержденияИБ#содержитзаписи) - проверяет наличие записей по условиям
|
||
|
* [`НеСодержитЗаписи`](/api/ЮТУтвержденияИБ#несодержитзаписи) - проверяет отсутствие записей по условиям
|
||
|
* [`СодержитЗаписиСНаименованием`](/api/ЮТУтвержденияИБ#содержитзаписиснаименованием) - проверяет наличие в таблице записей с указанным наименованием
|
||
|
* [`СодержитЗаписиСКодом`](/api/ЮТУтвержденияИБ#содержитзаписискодом) - проверяет наличие в таблице записей с указанным кодом
|
||
|
* [`СодержитЗаписиСНомером`](/api/ЮТУтвержденияИБ#содержитзаписисномером) - проверяет наличие в таблице записей с указанным номером
|
||
|
* [`НеСодержитЗаписиСНаименованием`](/api/ЮТУтвержденияИБ#несодержитзаписиснаименованием) - проверяет отсутствие в таблице записей с указанным наименованием
|
||
|
* [`НеСодержитЗаписиСКодом`](/api/ЮТУтвержденияИБ#несодержитзаписискодом) - проверяет отсутствие в таблице записей с указанным кодом
|
||
|
* [`НеСодержитЗаписиСНомером`](/api/ЮТУтвержденияИБ#несодержитзаписисномером) - проверяет отсутствие в таблице записей с указанным номером
|
||
|
|
||
|
## Примеры
|
||
|
|
||
|
```bsl title="Тест создания справочника"
|
||
|
// Проверка и подготовка контекста
|
||
|
АртикулТовара = ЮТест.Данные().СлучайнаяСтрока();
|
||
|
УсловиеПоискаТовара = ЮТест.Предикат()
|
||
|
.Реквизит("Артикул").Равно(АртикулТовара)
|
||
|
.Получить(); // Необходимо для сохранения сформированного предиката в переменную
|
||
|
|
||
|
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар уже существует в базе")
|
||
|
.НеСодержитЗаписей(УсловиеПоискаТовара);
|
||
|
|
||
|
// Выполнение тестируемого метода
|
||
|
СоздатьТовар(АртикулТовара);
|
||
|
|
||
|
// Проверка результата
|
||
|
ЮТест.ОжидаетЧтоТаблицаБазы("Справочник.Товары", "Товар не был создан")
|
||
|
.СодержитЗаписи(УсловиеПоискаТовара);
|
||
|
|
||
|
// Проверим заполнение нового элемента
|
||
|
СозданныйТовар = ЮТЗапрос.Запись("Справочник.Товары", УсловиеПоискаТовара);
|
||
|
ЮТест.ОжидаетЧто(СозданныйТовар, "Данные нового товара")
|
||
|
.Заполнено()
|
||
|
.Свойство("Наименование").Заполнено()
|
||
|
.Свойство("Код").Заполнено()
|
||
|
.Свойство("Артикул").Заполнено();
|
||
|
```
|
||
|
|
||
|
:::tip Проверка заполнения
|
||
|
Не рекомендую использовать `ЮТест.ОжидаетЧтоТаблицаБазы` проверки заполнения созданных/измененных данных.
|
||
|
Лучше сначала получить запись используя `ЮТЗапрос.Запись` и с помощью `ЮТест.ОжидаетЧто` проверить ее заполнение.
|
||
|
|
||
|
Разница будет в тексте ошибки:
|
||
|
|
||
|
* `ЮТест.ОжидаетЧтоТаблицаБазы` скажет, что запись в базе отсутствует, без разницы, был ли создан товар или он был некорректно заполнен.
|
||
|
* `ЮТЗапрос.Запись` + `ЮТест.ОжидаетЧто` позволит отдельно проверить наличе записи в базе и корректность заполнения.
|
||
|
При отсутствии будет выдана ошибка, что данные не заполнены, а при некорректном заполнении сообщит, какое свойство не заполнено.
|
||
|
:::
|