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