mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-03-20 20:55:11 +02:00
53 lines
3.5 KiB
Markdown
53 lines
3.5 KiB
Markdown
---
|
|
tags: [Начало, Контекст]
|
|
---
|
|
|
|
# Контекст
|
|
|
|
## Механизм контекстов
|
|
|
|
Одним из важнейших блоков работы тестового движка является механизм контекстов.
|
|
|
|
Он позволяет:
|
|
|
|
1. Хранить промежуточные данные и обеспечивать работу механизма текучих выражений.
|
|
2. Передавать между тестами необходимые данные.
|
|
3. Удалять тестовые данные.
|
|
|
|
И имеет несколько ограничений:
|
|
|
|
1. Не синхронизируется между клиентом и сервером.
|
|
2. Тестовые контексты имеют ограниченное время жизни. Например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста".
|
|
|
|
Для различных механизмов движка существуют различные контексты, такие как контекст утверждений, контекст теста и тд.
|
|
|
|
## Контексты тестового модуля
|
|
|
|
Разработчику тестов будут интересны следующие контексты:
|
|
|
|
* Контекст теста (`ЮТест.КонтекстТеста`) - живет в рамках одного теста. Доступен в каждом тесте и в обработчиках событий
|
|
* `ПередКаждымТестом`
|
|
* `ПослеКаждогоТеста`
|
|
* Контекст тестового набора (`ЮТест.КонтекстТестовогоНабора`) - живет в рамках набора тестов. Доступен в каждом тесте набора и в обработчиках событий
|
|
* `ПередТестовымНабором`
|
|
* `ПослеТестовогоНабора`
|
|
* `ПередКаждымТестом`
|
|
* `ПослеКаждогоТеста`
|
|
* Контекст тестового модуля (`ЮТест.КонтекстМодуля`) - живет в рамках тестового модуля. Доступен в каждом тесте модуля и в обработчиках событий
|
|
* `ПередВсемиТестами`
|
|
* `ПослеВсехТестов`
|
|
* `ПередТестовымНабором`
|
|
* `ПослеТестовогоНабора`
|
|
* `ПередКаждымТестом`
|
|
* `ПослеКаждогоТеста`
|
|
|
|
На каждом уровне исполнения есть возможность переопределить обработчики событий соответствующего контекста исполнения при помощи методов `Перед()` и `После()`. Настроенный обработчик события будет вызван _вместо_ основного. Пример:
|
|
```bsl
|
|
ЮТТесты
|
|
.ДобавитьТестовыйНабор("Набор1") // Будет вызван основной обработчик ПередТестовымНабором()
|
|
.ДобавитьТест("Тест1")
|
|
.ДобавитьТестовыйНабор("Набор2").Перед("Перед_Набор2") // Будет вызван обработчик Перед_Набор2()
|
|
.ДобавитьТест("Тест2");
|
|
|
|
```
|