1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-04-26 11:52:55 +02:00
2024-03-28 21:18:51 +03:00

80 lines
6.8 KiB
Markdown

# Организация тестов
## Расширение с тестами
Тесты размещаются в расширениях конфигурации, вы можете их совместить с движком, либо создать отдельное расширение.
* Вместе с движком.
* Доступна контекстная подсказка.
* Сложнее обновлять движок, необходимо воспользоваться сравнением-объединением.
* В отдельном расширении.
* Нет подсказки по методам движка.
* Движок обновляется загрузкой/заменой.
* Проще переключаться между версиями.
* Движок можно не хранить в репозитории проекта.
Мы в своих проектах используем первый вариант, так как удобство и экономия времени каждым разработчиком от контекстной подсказки перевешивает минус ручного обновления.
![Тесты движка](images/structure.png)
## Тестовые модули
Тесты располагаются в общих модулях (не заимствованных).
Тестовые модули (наборы тестов объекта) состоят из следующих блоков:
* Метод регистрации тестов `ИсполняемыеСценарии`.
В методе регистрации необходимо [перечислить все тесты](../features/test-registration.md) и, при необходимости, выполнить настройку.
* Реализация тестов, тестовые методы, собственно сами тесты.
* [Обработчики событий](../features/events.md), при необходимости.
Принято на один тестируемый модуль объекта создавать один общий модуль с тестами, например, тесты на модуль объекта и отдельно тесты на модуль менеджера.
Также полезно использовать регламент наименования тестовых модулей, так чтобы вам проще было с ними работать в будущем, облегчить навигацию.
Рекомендуем рассмотреть схему именования для EDT и если ее соблюдать, вы сможете с легкостью переключатся между тестом и тестируемым методом.
### Схема наименования модулей
Все тесты должны располагаться в общих модулях.
Имя тестового модуля должно соответствовать шаблону `[Префикс типа объекта_][Имя проверяемого объект]{_Суффикс типа модуля}`, где суффикс не обязателен, но крайне желателен.
По правильно названному модулю мы можем с легкостью получить информацию о типе тестируемого объекта и его имени, а также тип его модуля, методы которого проверяем. Список поддерживаемых суффиксов и префиксов приведен в таблицах ниже.
#### Префиксы типов объекта
| Тип тестируемого объекта | Префикс | Пример |
| ------------------------ | ------- | ------------------------------------------- |
| Общий модуль | `ОМ_` | ОМ_ОбщегоНазначения |
| Регистр бухгалтерии | `РБ_` | РБ_Хозрасчетный, РБ_Хозрасчетный_НЗ |
| Регистр накопления | `РН_` | РН_ОстаткиНаСкладах, РН_ОстаткиНаСкладах_ММ |
| Регистр расчета | `РР_` | РР_Зарплата, РР_Зарплата_НЗ |
| Регистр сведений | `РС_` | РС_АдресныйКлассификатор |
| Бизнес процесс | `БП_` | БП_Согласование |
| Справочник | `Спр_` | Спр_Пользователи, Спр_Пользователи_МО |
| План счетов | `ПС_` | ПС_Хозрасчетный |
| План видов расчета | `ПВР_` | ПВР_Зарплатный |
| План видов характеристик | `ПВХ_` | ПВХ_Субконто, ПВХ_Субконто_ММ |
| Документ | `Док_` | Док_ПКО |
| Перечисление | `Пер_` | Пер_СтатусСогласования |
| План обмена | `ПО_` | ПО_РИБ, ПО_РИБ_ММ |
| Задача | `Зад_` | Зад_Задача |
| Обработка | `Обр_` | Обр_ЗакрытиеМесяца, Обр_ЗакрытиеМесяца_МО |
| Отчет | `Отч_` | Отч_УниверсальныйОтчет |
#### Суффиксы типов модулей
| Тип тестируемого модуля | Суффикс | Пример |
| ----------------------- | -------------- | ------------------------------------------ |
| Общий модуль | `<Без суффикса>` | ОМ_ОбщегоНазначения |
| Модуль объекта | `_МО` | Спр_Пользователи_МО, Обр_ЗакрытиеМесяца_МО |
| Модуль менеджера | `_ММ` | ПВХ_Субконто_ММ, ПО_РИБ_ММ |
| Модуль набора записей | `_НЗ` | РБ_Хозрасчетный_НЗ, РР_Зарплата_НЗ |
## Тестовые методы
Тест состоит из двух обязательных частей:
* Регистрация в методе `ИсполняемыеСценарии`
* Реализация теста.