Skip to content

Пример теста СКД и отчета, сделанного на компоновке

Artur Ayukhanov edited this page Feb 15, 2015 · 6 revisions

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

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

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

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

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

image

image

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

image

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

image

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

#Если ТолстыйКлиентОбычноеПриложение или ТолстыйКлиентУправляемоеПриложение Тогда
	
Перем юТест;

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

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

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

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

#КонецЕсли 
Clone this wiki locally