Тестирование
Что такое датасеты, зачем они нужны и где используются?
Тестовый датасет — набор данных, которые используются для установки тестируемой системы в нужное состояние.
В текущем проекте тестовые датасеты находятся в каталоге tests/datasets и используются для функциональных тестов.
Структура датасета такова:
- Файл
datasets.jsonсодержит в формате JSON массив для конкретной модели данных; - Файл
datasets.goсодержит логику обработки для формирования нужных структур перед записью их в базу данных.
В каталоге tests/datasets/common находятся вспомогательные функции для преобразования данных в датасетах.
Перед каждым запуском функциональных тестов все датасеты сохраняются в тестовую базу данных и после каждого запуска функциональных тестов все датасеты удаляются из тестовой базы.
Это влияет на запуск функциональных тестов — тестовая база должна быть пустой перед их запуском.
Примечание
Если функциональные тесты на каком-то из шагов упали и не завершились корректно — в тестовой базе могут остаться данные.
Тестовой базой считается база, указанная в файле ./configs/env.testing — этот файл в целом используется для запуска
сервиса в режиме функционального тестирования.
Важно, чтобы название тестовой базы не соответствовало текущей локальной рабочей базе, если важно не потерять данные в ней.
Запуск функциональных тестов
Функциональные тесты нельзя запускать в production-среде. Они не прездназначены для этого — запуск таких тестов может затереть реальные данные. Потому, в проекте сделано всё возможное, чтобы запретить запуск этих тестов в продакшене.
Если в .env используется
POSTGRES_DB=domain
.env.testing указать
POSTGRES_DB=domain_testing
База domain_testing будет создана автоматически, если параметры подключения к Postgres-у указаны корректно.