5.4 KiB
tags | ||
---|---|---|
|
Удаление тестовых данных
При использовании тестовых данных нередко необходимо удалять созданные объекты.
Для этого вы можете использовать
Автоматические транзакции
Для включения нужно при регистрации теста вызвать метод ВТранзакции()
ЮТТесты
.ДобавитьТест("Фикция").ВТранзакции() // Использование транзакции для конкретного теста
ЮТТесты
.ДобавитьТестовыйНабор("Основной).ВТранзакции() // Использование транзакции для набора тестов
.ДобавитьТест("Фикция")
ЮТТесты.ВТранзакции() // Использование транзакции для тестов модуля
.ДобавитьТест("Фикция")
И тогда тестовый движок будет оборачивать в транзакцию каждый серверный тест (для клиентских будет игнорироваться)
:::caution Учитывайте В транзакцию оборачивается тест, а не модуль или набор, поэтому данные созданные вне теста не будут удалены. Такие данные необходимо удалять самостоятельно при необходимости. :::
Механизм удаления тестовых данных
Для включения нужно при регистрации теста вызвать метод УдалениеТестовыхДанных()
ЮТТесты
.ДобавитьТест("Фикция").УдалениеТестовыхДанных() // Использование для конкретного теста
ЮТТесты
.ДобавитьТестовыйНабор("Основной).УдалениеТестовыхДанных() // Использование для всех тестов набора
.ДобавитьТест("Фикция")
ЮТТесты.УдалениеТестовыхДанных() // Использование для всех тестов модуля
.ДобавитьТест("Фикция")
ЮТТесты.ВТранзакции().УдалениеТестовыхДанных() // Совместно с транзакцией
.ДобавитьТест("Фикция")
Механизм не использует транзакции, а запоминает в контексте все созданные с помощью API объекты и записи регистров сведений. Позволяет:
- Удалять данные созданные с клиента
- Удалять данные созданные вне теста (в обработчиках событий)
:::caution Удаление и только Механизм только удаляет созданные объекты, изменения не откатываются :::
:::tip Разное время жизни данных Механизм понимает в рамках какого контекста исполнения (тест, набор, модуль) были созданы данные и удаляет их по выходу из него. :::
Рассмотрим время жизни объектов созданных на разных этапах тестирования, например имеем такой модуль.
Процедура ПередВсемиТестами() Экспорт
ДанныеМодуля = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры
Процедура ПередТестовымНабором() Экспорт
ДанныеНабора = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры
Процедура ПослеВсехТестов() Экспорт
ДанныеТеста = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры
Процедура Тест() Экспорт
Ссылка = ЮТест.Данные().СоздатьЭлемент();
КонецПроцедуры
Для переменных получим разное время жизни
ДанныеМодуля
- Живет, пока исполняются тесты модуля одного контекста (Сервер, Клиент).ДанныеНабора
- Живет, пока исполняются тесты набора.ДанныеТеста
иСсылка
- Живут, пока исполняется тест.
:::caution Механизм имеет ряд ограничений и не работает для следующих кейсов:
- Данные создан не через API
- Данные созданы в клиентском модуле через вызов своего серверного модуля, даже если он использует API тестового движка :::