Обработка для юнит-тестирования

15.01.16

Разработка - Инструментарий разработчика

Обработка предназначена для автоматизированного выполнения юнит-тестов при написании кода методом «Разработка через тестирование» («TDD»), применяющимся как самостоятельно, так и, в частности, в методике экстремального программирования.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Автоматическое тестирование (управляемая форма)
.epf 13,76Kb
1 1 850 руб. Купить
Автоматическое тестирование (обычная форма)
.epf 8,57Kb
0 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Обработка позволяет выполнить все предварительно написанные тесты одним нажатием кнопки и узнать результат их прохождения.

Обработка работает следующим образом:

Вы пишете тест в виде отдельной функции, которая передает тестируемому куску кода заранее определенные входные данные и сравнивает рассчитанный результат с результатом, заранее определенным программистом.  Тест возвращает структуру из двух переменных: булево «ТестПрошел» - флаг успешного прохождения теста и строка «СообщениеОбОшибке» - сообщение, которое нужно показать пользователю в случае неудачного выполнения теста. Тесты можно размещать в общих модулях, можно и в модулях объектов.

В табличное поле на форме обработки заносите перечень тестов. Каждая строка перечня содержит название теста и имя метода – функции, в которой выполняется тест. Перечень можно сохранить в файл на диске нажатием кнопки «Сохранить тесты». Если тест расположен в модуле объекта, помните, что для его вызова нужно сначала создать объект. Таким образом, имя метода будет выглядеть так: Документы.РасчетСуммы.СоздатьДокумент().ТестРассчетаОбратнойРеализации()

По нажатию кнопки «Выполнить тесты», обработка по очереди вызывает все тесты из перечня. Если все они завершились удачно, поле «Результат» окрасится в зеленый цвет («Зеленая полоска»). Если же какой-либо тест вернул отрицательный результат, или выпал с ошибкой, обработка сообщит об этом, выведет переданные несработавшими тестами сообщения, а поле «Результат» окрасится в красный цвет («Красная полоска»).

Пример теста:

Функция ТестРассчетаОбратнойРеализации() Экспорт
                Ответ=Новый Структура;                 
                Ответ.Вставить("ТестПрошел",Ложь);
                Ответ.Вставить("СообщениеОбОшибке","");
               
                Попытка                                
                               Об=Документы.РасчетСумм.СоздатьДокумент();
                               Стр=Новый Структура;               // Готовим входные параметры для тестируемой процедуры
                               Стр.Вставить("Сумма",0);        
                               Стр.Вставить("РыночнаяЦена",100);
                               Стр.Вставить("СтоимостьВозможнойПродажи",70);
                               Стр.Вставить("Количество",7);
                               Об.РассчитатьОбратнуюРеализацию(Стр);    // Вызываем саму процедуру, передавая ей тестовые данные
                               Если Стр.Сумма<>455 Тогда               // Если рассчитанное процедурой значение не совпадает
                                                                                   // с посчитанным нами - тест не прошел
                                               Ответ.СообщениеОбОшибке="Неправильная сумма";
                               Иначе
                                               Ответ.ТестПрошел=Истина;
                               КонецЕсли;
                Исключение
                               Ответ.ТестПрошел=Ложь;
                               Ответ.СообщениеОбОшибке="Ошибка при выполнении теста";
                КонецПопытки;
               
                Возврат Ответ;
КонецФункции

Все вопросы, кроме «А зачем оно нада?», задавайте в комментариях. Для ответа на вопрос «А зачем оно нада?» гуглите «разработка через тестирование».

Вступайте в нашу телеграмм-группу Инфостарт

автоматическое юнит тестирование

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

15500 руб.

02.09.2020    213788    1173    413    

1050

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    40981    223    115    

212

Пакетная печать Печатные формы Инструментарий разработчика Программист 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    26768    67    30    

97

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

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

16000 руб.

10.11.2023    18899    76    39    

92

Инструментарий разработчика Программист 1С v8.3 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9500 руб.

17.05.2024    37948    135    55    

177

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    4442    8    10    

15

Инструментарий разработчика 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    3744    7    0    

12
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Messenger Unchained 15.01.16 18:59 Сейчас в теме
Все вопросы, кроме «А зачем оно нада?», задавайте в комментариях. Для ответа на вопрос «А зачем оно нада?» гуглите «разработка через тестирование».


А зачем оно нада? Ты внезапно обнаружил у xUnitFor1C фатальный недостаток?
awa; ojiojiowka; tormozit; amon_ra; json; ardn; +6 Ответить
2. ardn 700 15.01.16 20:04 Сейчас в теме
Дело конечно хорошее, но...
Что есть в вашей обработке, чего нет в xUnitFor1C?
3. CyberRich 2 16.01.16 20:35 Сейчас в теме
(2) ardn, сказать по правде, писал обработку для лучшего понимания сути процесса "изнутри". Вдруг кому еще пригодится в этих же целях.
4. alex_4x 88 25.01.16 09:57 Сейчас в теме
Наверняка это очень полезная и ценная обработка. Вот бы еще инструкцию как сам метод разработки через тестирование применять в 1С.
Я мало что в разработке через тестирование понимаю, и у меня такое ощущение (скорее всего ошибочное) что эту методологию можно применять только в очень простых подзадачах. Ну условно при разработке веб страницы - там подзадачи просты и мало связаны, имеют малую степень зависимости друг от друга, и такая методика там применима. В то же время, если все задачи переплетены - то от TDD больше проблем, чем пользы. В любом случае было бы очень интересно почитать как автор предлагает разрабатывать через тестирование на 1С. Конечно лучше с примерами. Это было бы гораздо более ценно, чем сама обработка.
5. CyberRich 2 29.01.16 11:48 Сейчас в теме
(4) alex_4x, именно в очень простых подзадачах! С первого взгляда на методику мне тоже трудно было понять отличия приемочных тестов от модульных. Так вот: приемочные тесты служат для тестирования решения вцелом. А модульные тесты используются именно для того, чтобы ГАРАНТИРОВАТЬ правильную работу какого-либо очень простого механизма (например, одной функции) в составе программного решения. Это очень важное условие для дальнейшего использования такого метода, как рефакторинг: пересмотра уже написанного и работающего кода с целью его упрощения и оптимизации. Если тесты охватывают всю область входных данных механизма, можно сразу же, запустив тест, проверить, по прежнему ли механизм работает как должно. Поначалу очень неуютно нарушать правило "работает-не трогай", но попробовав такой метод, я для себя решил однозначно: оно того стоит. Для сложных механизмов, где задачи переплетены, методика тем более приносит неоценимую пользу: в любой момент программист уверен, что конкретные отдельные процедуры и функции работают правильно. Главное - спроектировать систему как совокупность механизмов, которые представляются для остальных механизмов атомарным, законченными "черными ящиками". А при работой над новым механизмом по несработавшим тестам сразу видишь, где взаимосвязи нарушаются, обрабатываешь эти моменты и опять получаешь стабильную, контролируемую тестами систему. Как то так. Чуть позже попробую кратенько описать использования юнит-тестов лично мной.
Для отправки сообщения требуется регистрация/авторизация