Перейти к содержанию

Тестирование

Что такое датасеты, зачем они нужны и где используются?

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

В текущем проекте тестовые датасеты находятся в каталоге 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-у указаны корректно.