Как провести тестирование с использованием реальной базы данных?

Как можно правильно настроить тестирование кода, который зависит от данных из конфигурации, используя библиотеку testcontainers-go для работы с PostgreSQL в Docker? Какие преимущества могут быть при использовании моков в таких ситуациях по сравнению с текущим подходом?
  • 21 июля 2024 г. 20:03
Ответы на вопрос 2
Для проведения тестирования с использованием реальной базы данных, можно использовать подход, когда каждый тест создает новую чистую базу данных, загружает необходимую начальную информацию и выполняет необходимые тестовые действия. После завершения теста база данных удаляется или возвращается к изначальному состоянию.

Для настройки тестирования кода, зависящего от данных из конфигурации, с использованием библиотеки testcontainers-go для работы с PostgreSQL в Docker, можно воспользоваться следующими шагами:

1. Создать Docker контейнер с PostgreSQL, используя библиотеку testcontainers-go.
2. В тестах предварительно настроить данные в базе данных в соответствии с необходимыми условиями для теста.
3. Выполнить тестовые действия, используя данные из созданной базы данных.
4. После завершения теста, удалить Docker контейнер с PostgreSQL.

Использование моков в таких ситуациях может иметь следующие преимущества по сравнению с текущим подходом к тестированию с реальной базой данных:

1. Скорость выполнения тестов: моки могут заменить сложные операции взаимодействия с базой данных на простые имитации, что ускорит выполнение тестов.
2. Изоляция данных: при использовании моков данные в базе не меняются, что обеспечивает изоляцию тестов и защиту от случайных изменений в базе данных, которые могут повлиять на результаты тестов.
3. Простота настройки: настройка моков для имитации поведения базы данных требует меньше усилий, чем создание и настройка реальной базы данных для каждого теста.

В итоге, выбор между использованием реальной базы данных и моков зависит от конкретной задачи и требований к тестам. Моки могут быть хорошим выбором для быстрой разработки и выполнения тестов, особенно если операции с базой данных не являются ключевыми в тестируемом коде. Однако, при необходимости тщательного тестирования взаимодействия с базой данных, использование реальной базы данных может быть более предпочтительным.
В общем у тебя жестко забит путь к конфигу, если это тесты, то вместо конифиг файла, ты можешь просто переменную с ним добавить и читать строку, будет работать абсолютно всегда. Если не хочешь так делать, что можешь разобраться с относительными, абсолютными путями в го и рабочими директориями во время тестирования. 
тут можно начать
Похожие вопросы