Задать вопрос

Как тестировать взаимодействие с БД PHPUnit?

Добрый день. Для тестирования кода на PHP я использую PHPUnit.
На данный момент занимаюсь написанием архитектуры приложения, при этом используя шаблон Data Mapper. Соответственно, большинство тестов должно сводится к проверке взаимодействия кода с БД. CRUD операции с сущностью и т.д. Я думаю здесь нужно проверять непосредственно работу с БД, а не заменяться это stub объектами. Является ли вообще тестирование взаимодействия с БД модульным? И как правильно проводить данное тестирование. Использовать ли DBUnit. Опять же как? Спрашиваю не о том, что можно почитать в документации, а конкретно о лучших решениях, которые пришли с опытом. Спасибо!
  • Вопрос задан
  • 2993 просмотра
Подписаться 7 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Keksinautin
@Keksinautin
Software Engineer
Модульным наверно уже не является. Я бы назвал его "интеграционным", потому что мы тестируем как работает ваш код совместно с базой.
Суть заключается в том, что мы (в случае записи в базу) подаем на вход методу данные, а потом проверяем, что мы получили в базе, причем без использования нашего кода. В случае чтения наоборот, сначала сторонними средствами создаем записи, а потом проверяем, как они прочитаются.
Я в таких тестах всегда поступал следующим образом:
1. Создаем "дата-провайдера" - который в декларативной форме описывает параметры: "что на входе метода" и "что в базе" или "что в базе" и "что на выходе метода".
2. У нас есть прямой доступ к базе, с помощью него в каждом тесте мы либо создаем запись в базе, либо проверяем, что туда записал тестируемый метод.
Но думаю, такими тестами не стоит сильно увлекаться, ведь они по сути просто проверяют, что вы правильно составили запрос.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽