Генерация макета на базе реальных данных xUnit


#1

коллеги, подскажите, работает ли генерация макета на базе реальных данных (вер. 5.6.0) для случая, когда, например, в контрагенте есть реквизит основной банковский счет, а в банковском счете владелец счета - контрагент?
или я просто чего-то не понимаю и неправильно готовлю макет?

как то странно получается
иду отладчиком
начинается обработка прото-объекта спр. Контрагенты
доходит до реквизита “ОсновнойБанковскийСчет”, начинается создание прото-объекта спр. Банковские счета
в спр Банковские счета спускаться дальше некуда и объект спр. Банковские счета пытается записаться и и падает с ошибкой - владелец задан неверно


#2

С циклическими ссылками бывают проблемы, да.

Самый простой способ разрулить их - использовать явно Гуид.

т.е. для банковского счета в поле Контрагент указывается Гуид, равный Гуид-у поля ссылки контрагента, а не ссылка на переменную-контрагента.


#4

посмотри доку по генерации данных


#5


#6

т.е. единственный рабочий вариант это:
создать макет с включенным флагом “Выгружать ссылку” и ручная замена циклической ссылки на Гуид в том объекте, который оказался ниже.


#7

Этот вариант самый простой и гарантированно работающий!

есть и другие варианты, но там все непросто.

я специально в генераторе не решаю вопросы циклических ссылок, т.к. решить их сложно, а обойти указанным способом несложно


#8

ну и необязательно весь макет создавать с таким флагом.
Хотя его использование и рекомендуется, и по умолчанию флаг включен всегда.

можно подставить поле Ссылка только для контрагента, а для других элементов не использовать ссылку.
тогда другие элементы всегда будут уникальны, что бывает важно в некоторых тест-кейсах.


#9

А если сначала сделать двойную запись, сначала в ОбменДанными.Загрузка = Истина
А потом в том же порядке уже в рабочем режиме.
что с этим может быть не так? (наверняка вы такой вариант рассматривали)


#10

Не понял порядок действий и что хочешь сделать прследним вопросом :frowning:
Поясни


#11

Я имел ввиду то, что все объекты записываются сразу в режиме ОбменДанными.Загрузка = Истина, ссылки на них запоминаются в коллекцию и в самом конце записываются без ОбменДанными.Загрузка = Истина


#12

Записью в таком режиме управляет создатель макета.
фреймворк не может правильно понимать, когда нужен этот режим, а когда нет.

Например, документ можно сразу загрузить в режиме Проведения, тогда нельзя ставить этот признак.