Я искал все выше и ниже и, что удивительно, не могу найти ответ.
Когда я пытаюсь выполнить модульное тестирование моих моделей с помощью phpUnit, как я могу заглушить базу данных?
Яиспользуя PHP-фреймворк CMS, который имеет ряд классов, которые наследуются от класса («Model»), который наследуется от ADODB_Active_Record.Конструктор модели захватывает объект db (из ADOConnection) и передает его конструктору Active_Record.
Возможно, это не лучшая практика, но для того, чтобы как можно меньше изменить код, я подумываю о настройке grabDBObject () вернуть объект-заглушку во время тестирования.Эта заглушка передается в ADODB_Active_Record, и, теоретически, я могу проверить свои модели.
Однако я не могу понять, как создать заглушку.ADODB_Connection не просто.Это не будет вопросом замены Execute ().Есть куча других функций, таких как qstr (), о которых мне придется побеспокоиться и переписать по мере необходимости.
Что удивительно, я не могу найти никаких обсуждений людей, занимающихся этим.Это должно быть общей проблемой.Я иду в неправильном направлении?Я понимаю, что могу использовать что-то вроде dbUnit для фактического выполнения запросов к базе данных, а не заглушки ADODB_connection, но я также понимаю, что мне следует как можно больше заглушки, и что плохо полагаться на базу данных для модульных тестов методов модели.1011 *
Итак, 1. Должен ли я заглушить соединение БД для модульного тестирования?2. Как?