--- tags: [Начало, Контекст] --- # Контекст ## Механизм контекстов Одним из важнейших блоков работы тестового движка является механизм контекстов. Он позволяет: 1. Хранить промежуточные данные и обеспечивать работу механизма текучих выражений. 2. Передавать между тестами необходимые данные. 3. Удалять тестовые данные. И имеет несколько ограничений: 1. Не синхронизируется между клиентом и сервером. 2. Тестовые контексты имеют ограниченное время жизни. Например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста". Для различных механизмов движка существуют различные контексты, такие как контекст утверждений, контекст теста и тд. ## Контексты тестового модуля Разработчику тестов будут интересны следующие контексты: * Контекст теста (`ЮТест.КонтекстТеста`) - живет в рамках одного теста. Доступен в каждом тесте и в обработчиках событий * `ПередКаждымТестом` * `ПослеКаждогоТеста` * Контекст тестового набора (`ЮТест.КонтекстТестовогоНабора`) - живет в рамках набора тестов. Доступен в каждом тесте набора и в обработчиках событий * `ПередТестовымНабором` * `ПослеТестовогоНабора` * `ПередКаждымТестом` * `ПослеКаждогоТеста` * Контекст тестового модуля (`ЮТест.КонтекстМодуля`) - живет в рамках тестового модуля. Доступен в каждом тесте модуля и в обработчиках событий * `ПередВсемиТестами` * `ПослеВсехТестов` * `ПередТестовымНабором` * `ПослеТестовогоНабора` * `ПередКаждымТестом` * `ПослеКаждогоТеста` На каждом уровне исполнения есть возможность переопределить обработчики событий соответствующего контекста исполнения при помощи методов `Перед()` и `После()`. Настроенный обработчик события будет вызван _вместо_ основного. Пример: ```bsl ЮТТесты .ДобавитьТестовыйНабор("Набор1") // Будет вызван основной обработчик ПередТестовымНабором() .ДобавитьТест("Тест1") .ДобавитьТестовыйНабор("Набор2").Перед("Перед_Набор2") // Будет вызван обработчик Перед_Набор2() .ДобавитьТест("Тест2"); ```