Методика тестирования обработчиков событий

Материал из КинтВики
Перейти к: навигация, поиск


--Павел Лазарев 19:11, 11 декабря 2008 (SAMT)

Предлагается такая методика:

Например, создается обработчик события "ПередУдалением": <source lang=1c> &НаКлиенте Процедура ПриложенияПередУдалением(Элемент, Отказ) // Вставить содержимое обработчика. КонецПроцедуры </source>

Вызвать напрямую из теста эту процедуру можно, но не удастся установить визуальный элемент (Элемент - табличное поле) в нужное состояние.

Поэтому определяем процедуру, которую можно вызвать снаружи:

<source lang=1c> &НаКлиенте Процедура ПриложенияТекущиеДанныеПередУдалением(ТекущиеДанные, Отказ) Экспорт Если Не ПустаяСтрока(ТекущиеДанные.Имя) Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры

&НаКлиенте Процедура ПриложенияПередУдалением(Элемент, Отказ) ПриложенияТекущиеДанныеПередУдалением(Элемент.ТекущиеДанные, Отказ); КонецПроцедуры </source>

И вызываем её из обработчика и из теста.

<source lang=1c> &НаКлиенте Процедура Тест_ЗапретУдаленияПриложенияОбъекта(стСитуация) Экспорт ткТестирование.ЗаполнитьСитуацию(стСитуация, "ПростойБизнесПроцесс");

стПараметры = Новый Структура("БизнесПроцесс", ткТестирование.ПолучитьОбъект(стСитуация, "БП1")); форма = ПолучитьФорму("Документ.Процесс.Форма.ФормаДокумента", стПараметры); форма.Открыть(); ткТестирование.ПроверитьОпределено(форма.ТекОбъект);

ткТестирование.ПроверитьИстину(форма.Объект.Приложения.Количество() = 1 );

отказ = ложь; текущиеДанные = форма.Объект.Приложения[0]; форма.ПриложенияТекущиеДанныеПередУдалением(текущиеДанные, отказ); ткТестирование.ПроверитьИстину(отказ);

форма.Закрыть(); КонецПроцедуры


</source>

В этом случае мы полагаемся на то что код обработчика тривиальный и в нем сложно сделать ошибку.