xDrivenDevelopment / xUnitFor1C

Unit testing tools for 1C:Enterprise 8 platform (http://v8.1c.ru)
Apache License 2.0
345 stars 126 forks source link

Документировать подготовку (создание/удаление) данных для тестов #755

Open artbear opened 6 years ago

artbear commented 6 years ago

Например, короткий FAQ

Начало в https://gitter.im/xDrivenDevelopment/xUnitFor1C?at=5a1d26e68b3a9e2c0c27e2ab

Hryshenchuk Yehor @yehorh 12:05 Приветствую. Надеюсь найти совет | помощь в понимании того как правильно писать тесты с помощью данного фреймворка. Требуется проверять логику работу СКД. Создаю пустую БД, заливаю конфигурацию, делаю минимально начальное заполнение данных, генерирую тестовые данные в макете (справочники, документы, регистры). Создаю тесты с ожидаемыми правильными значениями. Запускаю на пустой базе в режиме транзакции: справочники не могут быть добавлены в проводки т.к. они еще не записаны "Ошибка получения представления значения" выдает обзор переменных в дебагере. Вопрос как правильно тестить такие случаи? что читать куда копать? заранее спасибо!

Evhen Sosna @pumbaEO 12:06 УФ ? ОФ?

Hryshenchuk Yehor @yehorh 12:07 Пытался посмотреть историю этой конфы, но гиттер как-то не очень хочет искать кириллицу.

Evhen Sosna @pumbaEO 12:07 В УФ транзакция - очень хрупкая вещь, т.к. приходится все выполнять на сервере за 1 раз.

Hryshenchuk Yehor @yehorh 12:07 пробовал в обычном приложении на сервере. какие рекоммендации тогда по очистке данных после каждого теста? просто логика достаточно сложна СКД и разбить я его не могу.

Evhen Sosna @pumbaEO 12:09 Сама идея такая - начать транзакцию - Загрузить данные из макетов - сформировать СКД - отменить транзакцию. Второй вариант - Загружаем данные из макета, фомриуем СКД - вызываем метод удаления данных по созданным из макетов. Второй вариант для расследования в чем причина - более предпочтительный.

Hryshenchuk Yehor @yehorh 12:10 ну, вот тут и проблема что если я добавляю справочники какие были созданы в транзакции то пишет "Ошибка получения представления значения" по этим объектам если вторым методом то все ок. если пользоваться вторым методом, то существуют штатные средства для удаления данных с шаблона после теста?

Evhen Sosna @pumbaEO 12:13 https://github.com/xDrivenDevelopment/xUnitFor1C/blob/develop/src/Plugins/%D0%A1%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80MXL/ObjectModule.bsl#L84 УдалитьСозданныеДанные( из серелизатора

Hryshenchuk Yehor @yehorh 12:15 Благодарю! регистры сведений не чистит - есть тесты это значит что надо рег. сведений создавать в транзакции вторым набором (макетом), а данные вводить без транзакции и потом этим методом удалять?

Evhen Sosna @pumbaEO 12:24 хм, Да их надо тогда отдельно еще и удалять.