В небольших проектах для воспроизведения тестов можно пользоваться следующим шагами:
- создать виртуальную машину (контейнер) с СУБД;
- восстановить СУБД с продуктовой среды из дампа;
- применить миграции.
Суть проблемы
При больших базах даннных время восстановления может измеряться часами. Если мы ставим целью прохождение тестов в течение короткого интервала времени (до 10 минут), нам нужен другой подход.
Решение
При написании обычного API программисты backend также пишут API для тестирования, которое создаёт сущности в бек-енде.
Например, для социальной сети это может быть содание аккаунта пользователя
с нужными для проведения тестировния атрибуами (возраст, пол, вес, интересы).
В случае оператора связи сущностью может быть договор на оказание услуг
с атрибутами баланс, подключенные услуги.
Тогда цикл работы теста может быть описан следующим образом:
- Подготовка тестовых данных с помощью API для тестирования;
- Выполнение интеграционных тестов в интерфейсном приложении (участвует обычное API);
- Проверка результата выполнения с помощью API для тестирования.
Таким образом мы можем автоматизировать тестирование в процессах с участием больших баз данных.