1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-03-20 20:55:11 +02:00
yaxunit/documentation/docs/user-api/test-data/test-data-deletion.md
alkoleft a26d30e15d #104
Руссифицировал теги
2023-05-25 13:59:42 +03:00

5.4 KiB

tags
Начало
Тестовые данные

Удаление тестовых данных

При использовании тестовых данных нередко необходимо удалять созданные объекты.

Для этого вы можете использовать

Автоматические транзакции

Для включения нужно при регистрации теста вызвать метод ВТранзакции()

ЮТТесты
    .ДобавитьТест("Фикция").ВТранзакции() // Использование транзакции для конкретного теста

ЮТТесты
    .ДобавитьТестовыйНабор("Основной).ВТранзакции() // Использование транзакции для набора тестов
    .ДобавитьТест("Фикция")

ЮТТесты.ВТранзакции() // Использование транзакции для тестов модуля
    .ДобавитьТест("Фикция")

И тогда тестовый движок будет оборачивать в транзакцию каждый серверный тест (для клиентских будет игнорироваться)

:::caution Учитывайте В транзакцию оборачивается тест, а не модуль или набор, поэтому данные созданные вне теста не будут удалены. Такие данные необходимо удалять самостоятельно при необходимости. :::

Механизм удаления тестовых данных

Для включения нужно при регистрации теста вызвать метод УдалениеТестовыхДанных()

ЮТТесты
    .ДобавитьТест("Фикция").УдалениеТестовыхДанных() // Использование для конкретного теста

ЮТТесты
    .ДобавитьТестовыйНабор("Основной).УдалениеТестовыхДанных() // Использование для всех тестов набора
    .ДобавитьТест("Фикция")

ЮТТесты.УдалениеТестовыхДанных() // Использование для всех тестов модуля
    .ДобавитьТест("Фикция")

ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() // Совместно с транзакцией
    .ДобавитьТест("Фикция")

Механизм не использует транзакции, а запоминает в контексте все созданные с помощью API объекты и записи регистров сведений. Позволяет:

  • Удалять данные созданные с клиента
  • Удалять данные созданные вне теста (в обработчиках событий)

:::caution Удаление и только Механизм только удаляет созданные объекты, изменения не откатываются :::

:::tip Разное время жизни данных Механизм понимает в рамках какого контекста исполнения (тест, набор, модуль) были созданы данные и удаляет их по выходу из него. :::

Рассмотрим время жизни объектов созданных на разных этапах тестирования, например имеем такой модуль.

Процедура ПередВсемиТестами() Экспорт
    ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры

Процедура ПередТестовымНабором() Экспорт
    ДанныеНабора = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры

Процедура ПослеВсехТестов() Экспорт
    ДанныеТеста = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры

Процедура Тест() Экспорт
    Ссылка = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры

Для переменных получим разное время жизни

  • ДанныеМодуля - Живет, пока исполняются тесты модуля одного контекста (Сервер, Клиент).
  • ДанныеНабора - Живет, пока исполняются тесты набора.
  • ДанныеТеста и Ссылка - Живут, пока исполняется тест.

:::caution Механизм имеет ряд ограничений и не работает для следующих кейсов:

  • Данные создан не через API
  • Данные созданы в клиентском модуле через вызов своего серверного модуля, даже если он использует API тестового движка :::