1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-23 21:09:24 +02:00

61 lines
4.3 KiB
Markdown
Raw Normal View History

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