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