1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-20 20:55:11 +02:00

4.3 KiB

tags
Начало
Контекст

Контекст

Одним из важнейших блоков работы тестового движка является механизм контекстов.

Он позволяет:

  1. Хранить промежуточные данные и обеспечивать работу механизма текучих выражений
  2. Передавать между тестами необходимые данные
  3. Удалять тестовые данные

И имеет несколько ограничений:

  1. Не синхронизируется между клиентом и сервером
  2. Тестовые контексты имеют ограниченное время жизни, например, контекст теста "живет" только в рамках теста и событиях "ПередКаждымТестом", "ПослеКаждогоТеста".

Для различных механизмов движка существуют различные контексты, такие как контекст утверждений, контекст теста и тд.

Разработчику тестов будут интересны следующие контексты:

  • Контекст теста (ЮТест.КонтекстТеста) - живет в рамках одного теста. Доступен в каждом тесте и в обработчиках событий
    • ПередКаждымТестом
    • ПослеКаждогоТеста
  • Контекст тестового набора (ЮТест.КонтекстТестовогоНабора) - живет в рамках набора тестов. Доступен в каждом тесте набора и в обработчиках событий
    • ПередТестовымНабором
    • ПослеТестовогоНабора
    • ПередКаждымТестом
    • ПослеКаждогоТеста
  • Контекст тестового модуля (ЮТест.КонтекстМодуля) - живет в рамках тестового модуля. Доступен в каждом тесте модуля и в обработчиках событий
    • ПередВсемиТестами
    • ПослеВсехТестов
    • ПередТестовымНабором
    • ПослеТестовогоНабора
    • ПередКаждымТестом
    • ПослеКаждогоТеста

Для тестовых наборов есть возможность определить отдельный контекст, доступный в конкретном наборе. Для этого надо переопределить события тестового набора через настройки "ПередТестовымНабором" и "ПослеТестовогоНабора" соответственно. В текущей реализации такой отдельный контекст набора не заменяет общий, а дополняет его. Пример:

Процедура ИсполняемыеСценарии() Экспорт
  ЮТТесты
    .ДобавитьТестовыйНабор("Набор1")
      .ДобавитьТест("Тест1")
    .ДобавитьТестовыйНабор("Набор2")
      .НастройкаИсполнения("ПередТестовымНабором", "ПередТестовымНабором_Набор2")
      .НастройкаИсполнения("ПослеТестовогоНабора", "ПослеТестовогоНабора_Набор2")
      .ДобавитьТест("Тест2");
КонецПроцедуры

Процедура ПередТестовымНабором() Экспорт
  ЮТест.Контекст().УстановитьЗначение("...", ...); // Будет доступен в тестах каждого набора
КонецПроцедуры

Процедура ПередТестовымНабором_Набор2() Экспорт
  ЮТест.Контекст().УстановитьЗначение("...", ...); // Будет доступен только в тестах второго набора
КонецПроцедуры