Skip to content

Пример теста СКД и отчета, сделанного на компоновке (версия 3.Х)

Artur Ayukhanov edited this page Feb 1, 2016 · 1 revision

Простой пример теста проверки отчета на СКД.

В тесте сначала создаются тестовые данные в базе, затем выполняется отчет на СКД, получается сводная таблица. Эта таблица сверяется с эталоном.

Можно скачать сам файл теста (это внешняя обработка )

Код самого теста (модуль этой обработки) - приведен ниже по тексту.

Настройка схемы компоновки в отчете

image

image

Эталон результата работы СКД (на базе указанной выше настройки)

image

Макет данных для теста

image

Код теста (из http://goo.gl/6z4H6A)

Перем юТест;

Функция ПолучитьСписокТестов(ЮнитТестирование) Экспорт
	
	юТест = ЮнитТестирование;
	
	ВсеТесты = Новый Массив;
	ВсеТесты.Добавить("Тест_ПроверитьОтчетНаСоответствиеЭталону");
	Возврат ВсеТесты;
	
КонецФункции

Процедура ПередЗапускомТеста() Экспорт
	НачатьТранзакцию();
КонецПроцедуры

Процедура ПослеЗапускаТеста() Экспорт
	Если ТранзакцияАктивна() Тогда
		ОтменитьТранзакцию();
	КонецЕсли;
КонецПроцедуры

Процедура Тест_ПроверитьОтчетНаСоответствиеЭталону() Экспорт
	Перем Расшифровка; // сюда будет передана информация расшифровки СКД, т.к. в эталоне она тоже есть
	
	// создание тестовых данных из табличного документа
	МакетТестовыеДанные = ПолучитьМакет("ТестовыеДанные");
	ТестовыеДанные = юТест.СоздатьДанныеПоТабличномуДокументу(МакетТестовыеДанные);
		
	// Получение эталонного отчета
	// Важно эталон получать именно так из-за плясок с кодом языка макета
	МакетЭталона = ПолучитьМакет("Эталон");
	Эталон = Новый ТабличныйДокумент;
	Эталон.Вывести(МакетЭталона);
	
	// Формирование отчета
	РезультатОтчета = Новый ТабличныйДокумент;
	Отчет = Отчеты.ТестовыйОтчетСКДДляСравнениеСЭталоном.Создать();
	Отчет.СкомпоноватьРезультат(РезультатОтчета, Расшифровка);
	
	#Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда

		// Сохранение в файлы mxl
		ИмяФайлаЭталона = ПолучитьИмяВременногоФайла("mxl");
		ИмяФайлаРезультатаОтчета = ПолучитьИмяВременногоФайла("mxl");
		Эталон.Записать(ИмяФайлаЭталона);
		РезультатОтчета.Записать(ИмяФайлаРезультатаОтчета);
			
		// Сравнение файлов
		
		// Если Истина, то будет показано окно демонстрации различий, если файлы различны
		// Использовать только для расследования ошибки, если тест падает на сравнении
		ПоказатьРазличия = Истина;
		
		ПараметрыСравнения = Новый Структура;
		юТест.ПроверитьРавенствоФайлов(ИмяФайлаЭталона, ИмяФайлаРезультатаОтчета,
			"Ожидали, что результат отчета соответствует эталону", ПараметрыСравнения, ПоказатьРазличия);

	#Иначе
		юТест.ПроверитьРавенствоТабличныхДокументовТолькоПоЗначениям(Эталон, РезультатОтчета, "Ожидали, что эталон (слева) совпадет с результатом (справа), а они различны!");
			
	#КонецЕсли 	
	
КонецПроцедуры
Clone this wiki locally