mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Заполнение обязательных полей фиктивными данными
This commit is contained in:
parent
084c6102be
commit
eebf140d7a
@ -80,6 +80,43 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет обязательные поля объекта фиктивными значениями
|
||||
//
|
||||
// Если метод вызывается после вызова см. ТабличнаяЧасть, то устанавливаются значения реквизитов строки табличной части.
|
||||
//
|
||||
// На основании метаданных определяются обязательные поля (Проверка заполнения = Выдавать ошибку),
|
||||
// для них генерируются и устанавливаются фиктивные значение.
|
||||
//
|
||||
// * Для примитивных значение генерируется случайное значение
|
||||
// * Для ссылочных типов создается новый объект
|
||||
// * Для перечислений (в том числе системных) выбирается случайно значение перечисления
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Конструктор
|
||||
Функция ФикцияОбязательныхПолей() Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
Если ЗначениеЗаполнено(Контекст.ТекущаяТабличнаяЧасть) Тогда
|
||||
Реквизиты = Контекст.Метаданные.ТабличныеЧасти[Контекст.ТекущаяТабличнаяЧасть];
|
||||
ТекущаяЗапись = ДанныеСтроки();
|
||||
Иначе
|
||||
Реквизиты = Контекст.Метаданные.Реквизиты;
|
||||
ТекущаяЗапись = Контекст.Данные;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Элемент Из Реквизиты Цикл
|
||||
Реквизит = Элемент.Значение;
|
||||
Если Реквизит.Обязательный И НЕ Контекст.Данные.Свойство(Реквизит.Имя) Тогда
|
||||
Значение = ЮТТестовыеДанныеСлужебный.Фикция(Реквизит.Тип);
|
||||
ТекущаяЗапись.Вставить(Реквизит.Имя, Значение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат ЮТКонструкторТестовыхДанных;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Переключает конструктор на заполнение табличной части объекта.
|
||||
//
|
||||
// Параметры:
|
||||
|
@ -23,6 +23,7 @@
|
||||
ЮТТесты.ВТранзакции().УдалениеТестовыхДанных()
|
||||
.ДобавитьТест("ЗаполнитьСправочник")
|
||||
.ДобавитьТест("ЗаполнитьДокумент")
|
||||
.ДобавитьТест("ФикцияОбязательныхПолей")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -109,4 +110,43 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ФикцияОбязательныхПолей() Экспорт
|
||||
|
||||
Данные = ЮТест.Данные().КонструкторОбъекта("Справочники.Контрагенты")
|
||||
.ФикцияОбязательныхПолей()
|
||||
.ДанныеОбъекта();
|
||||
|
||||
ЮТест.ОжидаетЧто(Данные)
|
||||
.ИмеетДлину(2)
|
||||
.Свойство("ВидЦен").Заполнено()
|
||||
.Свойство("Наименование").Заполнено();
|
||||
|
||||
Данные = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара")
|
||||
.ФикцияОбязательныхПолей()
|
||||
.ТабличнаяЧасть("Товары")
|
||||
.ДобавитьСтроку()
|
||||
.ФикцияОбязательныхПолей()
|
||||
.ДанныеОбъекта();
|
||||
|
||||
ЮТест.ОжидаетЧто(Данные)
|
||||
.ИмеетДлину(6)
|
||||
.Свойство("Дата").Заполнено()
|
||||
.Свойство("Поставщик").Заполнено()
|
||||
.Свойство("Склад").Заполнено()
|
||||
.Свойство("Валюта").Заполнено()
|
||||
.Свойство("Организация").Заполнено()
|
||||
.Свойство("Товары").Заполнено()
|
||||
.Свойство("Товары[0]").ИмеетДлину(4);
|
||||
|
||||
Данные = ЮТест.Данные().КонструкторОбъекта("РегистрыСведений.КурсыВалют")
|
||||
.ФикцияОбязательныхПолей()
|
||||
.ДанныеОбъекта();
|
||||
|
||||
ЮТест.ОжидаетЧто(Данные)
|
||||
.ИмеетДлину(3)
|
||||
.Свойство("Период").Заполнено()
|
||||
.Свойство("Валюта").Заполнено()
|
||||
.Свойство("Курс").Заполнено();
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
x
Reference in New Issue
Block a user