xUnitFor1C icon indicating copy to clipboard operation
xUnitFor1C copied to clipboard

Как избежать дублирования кода при написании тестов?

Open ebugusey opened this issue 10 years ago • 8 comments

Я написал для одной задачи пачку избыточных тестов, которые выполняются долго. Чтобы их не выполнять каждый раз, я захотел выделить их в отдельную обработку. Но они используют общие процедуры объявленные в модуле теста. Как быть? Может у меня подход не правильный? Дайте советов мудрых.

ebugusey avatar Aug 30 '15 08:08 ebugusey

Я общий код однотипных тестов вынес в "библиотеку", которую подключаю так же, как юТест.

30 августа 2015 г., 11:21 пользователь ebugusey [email protected] написал:

Я написал для одной задачи пачку избыточных тестов, которые выполняются долго. Чтобы их не выполнять каждый раз, я захотел выделить их в отдельную обработку. Но они используют общие процедуры объявленные в модуле теста. Как быть? Может у меня подход не правильный? Дайте советов мудрых.

— Reply to this email directly or view it on GitHub https://github.com/xDrivenDevelopment/xUnitFor1C/issues/540.

Ndochp avatar Aug 31 '15 08:08 Ndochp

Я пытаюсь перейти на bdd стиль или копипаста.

pumbaEO avatar Aug 31 '15 08:08 pumbaEO

Всем привет!

Возможно немного не в тему, но возник такой вопрос: как правильно создавать тестовые данные?

Стоит ли использовать данные которые уже существуют в тестовой БД или следует всё генерировать в транзакции теста? Элементы справочников, документы с движениями и т.д. Например, какая-нибудь номенклатура и документы с движениями, где она используется.

Если это уже обсуждалось, буду благодарен за ссылку.

codenull avatar Oct 16 '15 11:10 codenull

Тест должен быть такой, чтобы корректно отрабатывал на пустой, только что созданной из cf, базе

16 октября 2015 г., 14:10 пользователь codenull [email protected] написал:

Всем привет!

Возможно немного не в тему, но возник такой вопрос: как правильно создавать тестовые данные?

Стоит ли использовать данные которые уже существуют в тестовой БД или следует всё генерировать в транзакции теста? Элементы справочников, документы с движениями и т.д. Например, какая-нибудь номенклатура и документы с движениями, где она используется.

Если это уже обсуждалось, буду благодарен за ссылку.

— Reply to this email directly or view it on GitHub https://github.com/xDrivenDevelopment/xUnitFor1C/issues/540#issuecomment-148686048 .

Былинкин Юрий

yuriybylinkin avatar Oct 16 '15 11:10 yuriybylinkin

Как-то это грустно, в каждый тест втыкать учетную политику организации. А без нее половина бухгалтерии не работает.

16 октября 2015 г., 14:27 пользователь yuriybylinkin < [email protected]> написал:

Тест должен быть такой, чтобы корректно отрабатывал на пустой, только что созданной из cf, базе

16 октября 2015 г., 14:10 пользователь codenull [email protected]

написал:

Всем привет!

Возможно немного не в тему, но возник такой вопрос: как правильно создавать тестовые данные?

Стоит ли использовать данные которые уже существуют в тестовой БД или следует всё генерировать в транзакции теста? Элементы справочников, документы с движениями и т.д. Например, какая-нибудь номенклатура и документы с движениями, где она используется.

Если это уже обсуждалось, буду благодарен за ссылку.

— Reply to this email directly or view it on GitHub < https://github.com/xDrivenDevelopment/xUnitFor1C/issues/540#issuecomment-148686048>

.

Былинкин Юрий

— Reply to this email directly or view it on GitHub https://github.com/xDrivenDevelopment/xUnitFor1C/issues/540#issuecomment-148689848 .

Ndochp avatar Oct 16 '15 11:10 Ndochp

Не так все грустно. Если сделать макет, который будет содержать только данные учетной политики, то "втыкание" ее в каждый тест будет выглядеть так: 1.в обработку теста добавляем макет "УчетнаяПолитика" 2. В модуле теста пишем ЮТест.СоздатьДанныеПоТабличномуДокументу("УчетнаяПолитика");

Или делаем то же самое в другой обработке-библиотеке, которую вызываем из теста.

yuriybylinkin avatar Oct 16 '15 12:10 yuriybylinkin

Т.е. предлагается при старте тестов инициализировать все необходимые настройки: заполнять константы, справочники и другие элементы системы?

Это весьма трудоемкая работа, в плане создания макета и времени загрузки всех начальных данных. К тому же, каждое изменение в структуре объектов, например, новые реквизиты в справочниках, потребует пересоздания макета?

Всё пытаюсь понять, как правильно ввести тестирование в свою практику, но не хватает четкого понимания в работе с данными до и во время тестов.

codenull avatar Oct 17 '15 05:10 codenull

У нас есть отдельный шаг для начального заполнения тестовой базы. Для этого используем спец.обработку 'ПервоначальноеЗаполнениеТестовыхДанных`, у которой есть тест (или набор тестов-шагов)

В макетах этой обработки внесены все необходимые данные, в коде теста/тестов на базе этих макетов создаются нужные данные. Константы создаются кодом также внутри этих тестов

artbear avatar Oct 19 '15 07:10 artbear