-
Notifications
You must be signed in to change notification settings - Fork 126
Пример теста СКД и отчета, сделанного на компоновке (версия 3.Х)
Artur Ayukhanov edited this page Feb 1, 2016
·
1 revision
Простой пример теста проверки отчета на СКД.
В тесте сначала создаются тестовые данные в базе, затем выполняется отчет на СКД, получается сводная таблица. Эта таблица сверяется с эталоном.
Можно скачать сам файл теста (это внешняя обработка )
Код самого теста (модуль этой обработки) - приведен ниже по тексту.
Настройка схемы компоновки в отчете
Эталон результата работы СКД (на базе указанной выше настройки)
Макет данных для теста
Код теста (из http://goo.gl/6z4H6A)
Перем юТест;
Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
юТест = ЮнитТестирование;
ВсеТесты = Новый Массив;
ВсеТесты.Добавить("Тест_ПроверитьОтчетНаСоответствиеЭталону");
Возврат ВсеТесты;
КонецФункции
Процедура ПередЗапускомТеста() Экспорт
НачатьТранзакцию();
КонецПроцедуры
Процедура ПослеЗапускаТеста() Экспорт
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
КонецПроцедуры
Процедура Тест_ПроверитьОтчетНаСоответствиеЭталону() Экспорт
Перем Расшифровка; // сюда будет передана информация расшифровки СКД, т.к. в эталоне она тоже есть
// создание тестовых данных из табличного документа
МакетТестовыеДанные = ПолучитьМакет("ТестовыеДанные");
ТестовыеДанные = юТест.СоздатьДанныеПоТабличномуДокументу(МакетТестовыеДанные);
// Получение эталонного отчета
// Важно эталон получать именно так из-за плясок с кодом языка макета
МакетЭталона = ПолучитьМакет("Эталон");
Эталон = Новый ТабличныйДокумент;
Эталон.Вывести(МакетЭталона);
// Формирование отчета
РезультатОтчета = Новый ТабличныйДокумент;
Отчет = Отчеты.ТестовыйОтчетСКДДляСравнениеСЭталоном.Создать();
Отчет.СкомпоноватьРезультат(РезультатОтчета, Расшифровка);
#Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда
// Сохранение в файлы mxl
ИмяФайлаЭталона = ПолучитьИмяВременногоФайла("mxl");
ИмяФайлаРезультатаОтчета = ПолучитьИмяВременногоФайла("mxl");
Эталон.Записать(ИмяФайлаЭталона);
РезультатОтчета.Записать(ИмяФайлаРезультатаОтчета);
// Сравнение файлов
// Если Истина, то будет показано окно демонстрации различий, если файлы различны
// Использовать только для расследования ошибки, если тест падает на сравнении
ПоказатьРазличия = Истина;
ПараметрыСравнения = Новый Структура;
юТест.ПроверитьРавенствоФайлов(ИмяФайлаЭталона, ИмяФайлаРезультатаОтчета,
"Ожидали, что результат отчета соответствует эталону", ПараметрыСравнения, ПоказатьРазличия);
#Иначе
юТест.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Эталон, РезультатОтчета, "Ожидали, что эталон (слева) совпадет с результатом (справа), а они различны!");
#КонецЕсли
КонецПроцедуры