При аварийном завершении машины teardown может не выполниться, поэтому данные действительно остаются. Нужна дополнительная уборка по метке запуска, сроку жизни или изолированному окружению.
Если тесты бежали, данные создавались, а посередине теста машинка отвалилась — данные оставались в базе? Как решали?
При аварийном завершении машины teardown может не выполниться, поэтому данные действительно остаются. Нужна дополнительная уборка по метке запуска, сроку жизни или изолированному окружению.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При аварийном завершении машины teardown может не выполниться, поэтому данные действительно остаются. Нужна дополнительная уборка по метке запуска, сроку жизни или изолированному окружению.
Каждому прогону присваивают идентификатор и сохраняют его у созданных сущностей. Отдельная задача удаляет только данные завершённых или просроченных тестовых запусков с проверкой границ. Альтернатива — одноразовая база или окружение, если архитектура это позволяет. Нельзя безусловно очищать общие таблицы или удалять данные активных прогонов. Обычная очистка в finally полезна, но не заменяет восстановление после сбоя инфраструктуры.