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