mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-17 20:48:01 +02:00
Merge pull request #124 from potoyalo/feature/ext-test-suite
Переопределение обработчиков событий тестового модуля
This commit is contained in:
commit
68df8ed0a9
@ -4,24 +4,30 @@ tags: [Начало, Контекст]
|
||||
|
||||
# Контекст
|
||||
|
||||
## Механизм контекстов
|
||||
|
||||
Одним из важнейших блоков работы тестового движка является механизм контекстов.
|
||||
|
||||
Он позволяет:
|
||||
|
||||
1. хранить промежуточные данные и обеспечивать работу механизма текучих выражений
|
||||
2. передавать между тестами необходимые данные
|
||||
3. удалять тестовые данные (пока только временные файлы)
|
||||
1. Хранить промежуточные данные и обеспечивать работу механизма текучих выражений.
|
||||
2. Передавать между тестами необходимые данные.
|
||||
3. Удалять тестовые данные.
|
||||
|
||||
И имеет несколько ограничений:
|
||||
|
||||
1. Не синхронизируется между клиентом и сервером
|
||||
2. Тестовые контексты имеют ограниченное время жизни, например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста".
|
||||
1. Не синхронизируется между клиентом и сервером.
|
||||
2. Тестовые контексты имеют ограниченное время жизни. Например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста".
|
||||
|
||||
Для различных механизмов движка существуют различные контексты, такие как контекст утверждений, контекст теста и тд.
|
||||
|
||||
## Контексты тестового модуля
|
||||
|
||||
Разработчику тестов будут интересны следующие контексты:
|
||||
|
||||
* Контекст теста (`ЮТест.КонтекстТеста`) - живет в рамках одного теста, также доступен в обработчиках событий `ПередКаждымТестом` и `ПослеКаждогоТеста`
|
||||
* Контекст теста (`ЮТест.КонтекстТеста`) - живет в рамках одного теста. Доступен в каждом тесте и в обработчиках событий
|
||||
* `ПередКаждымТестом`
|
||||
* `ПослеКаждогоТеста`
|
||||
* Контекст тестового набора (`ЮТест.КонтекстТестовогоНабора`) - живет в рамках набора тестов. Доступен в каждом тесте набора и в обработчиках событий
|
||||
* `ПередТестовымНабором`
|
||||
* `ПослеТестовогоНабора`
|
||||
@ -34,3 +40,13 @@ tags: [Начало, Контекст]
|
||||
* `ПослеТестовогоНабора`
|
||||
* `ПередКаждымТестом`
|
||||
* `ПослеКаждогоТеста`
|
||||
|
||||
На каждом уровне исполнения есть возможность переопределить обработчики событий соответствующего контекста исполнения при помощи методов `Перед()` и `После()`. Настроенный обработчик события будет вызван _вместо_ основного. Пример:
|
||||
```bsl
|
||||
ЮТТесты
|
||||
.ДобавитьТестовыйНабор("Набор1") // Будет вызван основной обработчик ПередТестовымНабором()
|
||||
.ДобавитьТест("Тест1")
|
||||
.ДобавитьТестовыйНабор("Набор2").Перед("Перед_Набор2") // Будет вызван обработчик Перед_Набор2()
|
||||
.ДобавитьТест("Тест2");
|
||||
|
||||
```
|
||||
|
@ -204,6 +204,38 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Контекст исполнения текущего уровня.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// - Неопределено
|
||||
// - См. ЮТФабрика.ОписаниеТестовогоМодуля
|
||||
// - См. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// - См. ЮТФабрика.ОписаниеИсполняемогоТеста
|
||||
Функция КонтекстИсполненияТекущегоУровня() Экспорт
|
||||
|
||||
Уровни = ЮТФабрика.УровниИсполнения();
|
||||
КонтекстИсполнения = КонтекстИсполнения();
|
||||
|
||||
Если КонтекстИсполнения.Уровень = Уровни.Модуль Тогда
|
||||
|
||||
Возврат КонтекстИсполнения.Модуль;
|
||||
|
||||
ИначеЕсли КонтекстИсполнения.Уровень = Уровни.НаборТестов Тогда
|
||||
|
||||
Возврат КонтекстИсполнения.Набор;
|
||||
|
||||
ИначеЕсли КонтекстИсполнения.Уровень = Уровни.Тест Тогда
|
||||
|
||||
Возврат КонтекстИсполнения.Тест;
|
||||
|
||||
Иначе
|
||||
|
||||
Возврат Неопределено;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеКонтекста() Экспорт
|
||||
|
||||
Описание = Новый Структура;
|
||||
|
@ -34,12 +34,36 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗначениеНастройкиТеста(ИмяНастройки, ЗначениеПоУмолчанию) Экспорт
|
||||
Функция Перед() Экспорт
|
||||
|
||||
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().Перед;
|
||||
|
||||
Возврат ЗначениеНастройкиТеста(ИмяПараметра, "", Истина);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция После() Экспорт
|
||||
|
||||
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().После;
|
||||
|
||||
Возврат ЗначениеНастройкиТеста(ИмяПараметра, "", Истина);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЗначениеНастройкиТеста(ИмяНастройки, ЗначениеПоУмолчанию, СтрогийУровеньИсполнения = Ложь) Экспорт
|
||||
|
||||
Значение = ЗначениеПоУмолчанию;
|
||||
КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения();
|
||||
|
||||
Если КонтекстИсполнения.Тест <> Неопределено И КонтекстИсполнения.Тест.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
|
||||
Если СтрогийУровеньИсполнения Тогда
|
||||
|
||||
ТекущийКонтекстИсполнения = ЮТКонтекст.КонтекстИсполненияТекущегоУровня();
|
||||
|
||||
Если ТекущийКонтекстИсполнения <> Неопределено Тогда
|
||||
Значение = ЮТОбщий.ЗначениеСтруктуры(ТекущийКонтекстИсполнения.НастройкиВыполнения, ИмяНастройки, ЗначениеПоУмолчанию);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли КонтекстИсполнения.Тест <> Неопределено И КонтекстИсполнения.Тест.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
|
||||
|
||||
Значение = КонтекстИсполнения.Тест.НастройкиВыполнения[ИмяНастройки];
|
||||
|
||||
|
@ -90,8 +90,7 @@
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
ВызватьОбработкуСобытия("ПередКаждымТестом", ОписаниеСобытия);
|
||||
ВызватьОбработкуСобытия("ПередТестом", ОписаниеСобытия);
|
||||
ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -105,8 +104,7 @@
|
||||
|
||||
ОписаниеСобытия = ЮТФабрика.ОписаниеСобытияИсполненияТестов(ТестовыйМодуль, Набор, Тест);
|
||||
|
||||
ВызватьОбработкуСобытия("ПослеТеста", ОписаниеСобытия);
|
||||
ВызватьОбработкуСобытия("ПослеКаждогоТеста", ОписаниеСобытия);
|
||||
ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
|
||||
|
||||
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
Если ЮТНастройкиВыполнения.ВТранзакции() Тогда
|
||||
@ -218,13 +216,31 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия)
|
||||
Процедура ВызватьОбработкуСобытий(События, ОписаниеСобытия)
|
||||
|
||||
ЭтоСобытиеПеред = СтрНачинаетсяС(ИмяСобытия, "Перед");
|
||||
Для ы = 0 По События.ВГраница() Цикл
|
||||
ИмяСобытия = События[ы];
|
||||
ПропуститьОбработчикТестовогоМодуля = (ы > 0 И ОбработчикСобытияПереопределен(ИмяСобытия));
|
||||
Если ПропуститьОбработчикТестовогоМодуля Тогда
|
||||
|
||||
Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия);
|
||||
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
|
||||
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
|
||||
|
||||
Иначе
|
||||
|
||||
ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия);
|
||||
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВызватьОбработкуСобытия(ИмяСобытия, ОписаниеСобытия)
|
||||
|
||||
Параметры = ЮТОбщий.ЗначениеВМассиве(ОписаниеСобытия);
|
||||
|
||||
Если ЭтоСобытиеПеред Тогда
|
||||
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
|
||||
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
|
||||
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
|
||||
Иначе
|
||||
@ -232,9 +248,7 @@
|
||||
Ошибки = ВызватьОбработчикРасширения(ИмяСобытия, Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Ошибка Из Ошибки Цикл
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
|
||||
КонецЦикла;
|
||||
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -247,10 +261,10 @@
|
||||
Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
|
||||
ПолноеИмяМетода = СтрШаблон("%1.%2", ИмяМодуля, ИмяСобытия);
|
||||
Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
|
||||
КонецЕсли;
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
Ошибки.Добавить(Ошибка);
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
Ошибки.Добавить(Ошибка);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
@ -265,21 +279,78 @@
|
||||
// ИмяСобытия - Строка - Имя вызываемого метода обработки события
|
||||
// ОписаниеСобытия - см. ЮТФабрика.ОписаниеСобытияИсполненияТестов
|
||||
//
|
||||
Процедура ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия)
|
||||
Процедура ВызватьОбработчикТестовогоМодуля(Знач ИмяСобытия, ОписаниеСобытия)
|
||||
|
||||
ОбработчикСобытияПереопределен = ОбработчикСобытияПереопределен(ИмяСобытия);
|
||||
Если ОбработчикСобытияПереопределен Тогда
|
||||
ИмяСобытия = ПереопределенноеИмяСобытия(ИмяСобытия);
|
||||
КонецЕсли;
|
||||
|
||||
ИмяМодуля = ОписаниеСобытия.Модуль.МетаданныеМодуля.Имя;
|
||||
Ошибка = Неопределено;
|
||||
|
||||
ЧастиКоманды = СтрРазделить(ИмяСобытия, ".");
|
||||
Если ЧастиКоманды.Количество() = 2 Тогда
|
||||
ИмяМодуля = ЧастиКоманды[0];
|
||||
ИмяСобытия = ЧастиКоманды[1];
|
||||
КонецЕсли;
|
||||
|
||||
Ошибки = Новый Массив();
|
||||
Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия);
|
||||
Если ЮТОбщий.МетодМодуляСуществует(ИмяМодуля, ИмяСобытия) Тогда
|
||||
|
||||
Команда = СтрШаблон("%1.%2()", ИмяМодуля, ИмяСобытия);
|
||||
Ошибка = ЮТОбщий.ВыполнитьМетод(Команда);
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
Ошибки.Добавить(Ошибка);
|
||||
КонецЕсли;
|
||||
|
||||
ИначеЕсли ОбработчикСобытияПереопределен Тогда
|
||||
|
||||
ТекстИсключения = СтрШаблон("Не найден обработчик тестового модуля %1", Команда);
|
||||
ВызватьИсключение ТекстИсключения
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
|
||||
КонецЕсли;
|
||||
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки)
|
||||
|
||||
Для Каждого Ошибка Из Ошибки Цикл
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ОбработчикСобытияПереопределен(ИмяСобытия)
|
||||
|
||||
Возврат ЗначениеЗаполнено(ПереопределенноеИмяСобытия(ИмяСобытия));
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ПереопределенноеИмяСобытия(ИмяСобытия)
|
||||
|
||||
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
|
||||
Возврат ЮТНастройкиВыполнения.Перед();
|
||||
ИначеЕсли ЭтоСобытиеПосле(ИмяСобытия) Тогда
|
||||
Возврат ЮТНастройкиВыполнения.После();
|
||||
Иначе
|
||||
Возврат "";
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоСобытиеПеред(ИмяСобытия)
|
||||
|
||||
Возврат СтрНачинаетсяС(ИмяСобытия, "Перед");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоСобытиеПосле(ИмяСобытия)
|
||||
|
||||
Возврат СтрНачинаетсяС(ИмяСобытия, "После");
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -184,6 +184,36 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает настройку переопределения обработчика события Перед...
|
||||
//
|
||||
// Параметры:
|
||||
// ВыполнитьПеред - Строка - Имя обработчика события, который будет выполнен вместо основного
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Этот же модуль, для замыкания
|
||||
Функция Перед(ВыполнитьПеред = "") Экспорт
|
||||
|
||||
НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает настройку переопределения обработчика события После...
|
||||
//
|
||||
// Параметры:
|
||||
// ВыполнитьПосле - Строка - Имя обработчика события, который будет выполнен вместо основного
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ОбщийМодуль - Этот же модуль, для замыкания
|
||||
Функция После(ВыполнитьПосле = "") Экспорт
|
||||
|
||||
НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Устанавливает параметры вызова теста.
|
||||
//
|
||||
// * Если метод вызывается первый раз, то он устанавливает параметры теста.
|
||||
|
@ -64,12 +64,16 @@
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура - Параметры исполнения теста:
|
||||
// * ВТранзакции - Строка - Тест должен выполняться в транзакции
|
||||
// * УдалениеТестовыхДанных - Строка - Тест должен удалить созданные тестовые данные
|
||||
// * УдалениеТестовыхДанных - Строка - Тест должен удалить созданные тестовые данные
|
||||
// * Перед - Строка - Перед тестом должен выполниться указанный обработчик события вместо основного
|
||||
// * После - Строка - После теста должен выполниться указанный обработчик события вместо основного
|
||||
Функция ПараметрыИсполненияТеста() Экспорт
|
||||
|
||||
Параметры = Новый Структура();
|
||||
Параметры.Вставить("ВТранзакции", "ВТранзакции");
|
||||
Параметры.Вставить("УдалениеТестовыхДанных", "УдалениеТестовыхДанных");
|
||||
Параметры.Вставить("Перед", "Перед");
|
||||
Параметры.Вставить("После", "После");
|
||||
|
||||
Возврат Новый ФиксированнаяСтруктура(Параметры);
|
||||
|
||||
|
@ -91,6 +91,8 @@
|
||||
ЮТТесты.ПослеЧтенияСценариевМодуля();
|
||||
Сценарии = ЮТТесты.СценарииМодуля();
|
||||
|
||||
УдалитьНастройкиМодуляИзПервогоНабора(Сценарии); // TODO Нужен рефакторинг
|
||||
|
||||
ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля);
|
||||
ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения;
|
||||
|
||||
@ -233,4 +235,14 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура УдалитьНастройкиМодуляИзПервогоНабора(СценарииМодуля)
|
||||
|
||||
НастройкиВыполнения = ЮТОбщий.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения);
|
||||
|
||||
СценарииМодуля.НастройкиВыполнения.Очистить();
|
||||
|
||||
СценарииМодуля.НастройкиВыполнения = НастройкиВыполнения;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -93,7 +93,7 @@
|
||||
|
||||
Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска);
|
||||
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
|
||||
.ИмеетДлину(20);
|
||||
.ИмеетДлину(21);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -21,8 +21,13 @@
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
.ДобавитьТест("Пропустить")
|
||||
.ДобавитьТест("ПроверкаКонтекста")
|
||||
.ДобавитьТестовыйНабор("ОсновнойНабор")
|
||||
.ДобавитьТест("Пропустить")
|
||||
.ДобавитьТест("ПроверкаКонтекста")
|
||||
.ДобавитьТестовыйНабор("ПереопределенныйНабор").Перед("Перед_ПереопределенныйНабор")
|
||||
.ДобавитьТест("ПроверкаПереопределенногоКонтекста").Перед("Перед_ПроверкаПереопределенногоКонтекста")
|
||||
.ДобавитьТестовыйНабор("ПовторнаяПроверкаКонтекста")
|
||||
.ДобавитьТест("ПроверкаКонтекста")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -66,7 +71,7 @@
|
||||
Процедура ПослеВсехТестов() Экспорт
|
||||
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов");
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")).ИмеетДлину(8);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")).ИмеетДлину(16);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -88,8 +93,46 @@
|
||||
.Содержит("ПередВсемиТестами")
|
||||
.Содержит("ПередТестовымНабором")
|
||||
.Содержит("ПередКаждымТестом");
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("КоллекцияПереопределенногоНабора")).Равно(Неопределено);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_ПереопределенныйНабор() Экспорт
|
||||
|
||||
ЮТест.Контекст().УстановитьЗначение("Набор", -2);
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("Перед_ПереопределенныйНабор");
|
||||
ЮТест.Контекст().УстановитьЗначение("КоллекцияПереопределенногоНабора", Новый Массив());
|
||||
ЮТест.Контекст().Значение("КоллекцияПереопределенногоНабора").Добавить("Перед_ПереопределенныйНабор");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Перед_ПроверкаПереопределенногоКонтекста() Экспорт
|
||||
|
||||
ЮТест.Контекст().УстановитьЗначение("Тест", -3);
|
||||
ЮТест.Контекст().УстановитьЗначение("Заменяемый", -3);
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("Перед_ПроверкаПереопределенногоКонтекста");
|
||||
ЮТест.Контекст().Значение("КоллекцияПереопределенногоНабора").Добавить("Перед_ПроверкаПереопределенногоКонтекста");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверкаПереопределенногоКонтекста() Экспорт
|
||||
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Глобальный"), "Значение глобального контекста").Равно(1);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Набор"), "Значение контекста набора").Равно(-2);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Тест"), "Значение контекста теста").Равно(-3);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Заменяемый"), "Замененное значение контекста").Равно(-3);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция"))
|
||||
.ИмеетДлинуБольше(4)
|
||||
.Содержит("ПередВсемиТестами")
|
||||
.Содержит("ПередТестовымНабором")
|
||||
.Содержит("Перед_ПереопределенныйНабор")
|
||||
.Содержит("ПередКаждымТестом")
|
||||
.Содержит("Перед_ПроверкаПереопределенногоКонтекста");
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("КоллекцияПереопределенногоНабора"))
|
||||
.ИмеетДлинуБольше(1)
|
||||
.Содержит("Перед_ПереопределенныйНабор")
|
||||
.Содержит("Перед_ПроверкаПереопределенногоКонтекста");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
<name>ОМ_ЮТест</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>О м ест</value>
|
||||
<value>ЮТест</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
|
77
tests/src/CommonModules/ОМ_ЮТестПереопределяемый/Module.bsl
Normal file
77
tests/src/CommonModules/ОМ_ЮТестПереопределяемый/Module.bsl
Normal file
@ -0,0 +1,77 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты.Перед("ОМ_ЮТест.ПередВсемиТестами")
|
||||
.ДобавитьТест("ПроверкаКонтекста")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередТестовымНабором() Экспорт
|
||||
|
||||
ЮТест.Контекст().УстановитьЗначение("Набор", 2);
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("ПередТестовымНабором");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПередКаждымТестом() Экспорт
|
||||
|
||||
ЮТест.Контекст().УстановитьЗначение("Тест", 3);
|
||||
ЮТест.Контекст().УстановитьЗначение("Заменяемый", 3);
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("ПередКаждымТестом");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеКаждогоТеста() Экспорт
|
||||
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеКаждогоТеста");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеТестовогоНабора() Экспорт
|
||||
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеТестовогоНабора");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеВсехТестов() Экспорт
|
||||
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов");
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция")).ИмеетДлину(6);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПроверкаКонтекста() Экспорт
|
||||
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Глобальный"), "Значение глобального контекста").Равно(1);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Набор"), "Значение контекста набора").Равно(2);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Тест"), "Значение контекста теста").Равно(3);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Заменяемый"), "Замененное значение контекста").Равно(3);
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция"))
|
||||
.ИмеетДлинуБольше(2)
|
||||
.Содержит("ПередВсемиТестами")
|
||||
.Содержит("ПередТестовымНабором")
|
||||
.Содержит("ПередКаждымТестом");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="63d6c40e-3773-40d3-ab65-addf6be0e949">
|
||||
<name>ОМ_ЮТестПереопределяемый</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>ЮТест переопределяемый</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -29,6 +29,7 @@
|
||||
<commonModules>CommonModule.ОМ_Общий</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ОшибкаЗагрузкиСценариев</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТест</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТестПереопределяемый</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТЗапросы</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТКонструкторТестовыхДанных</commonModules>
|
||||
<commonModules>CommonModule.ОМ_ЮТПодражатель_Банки</commonModules>
|
||||
|
Loading…
x
Reference in New Issue
Block a user