Теоретически лучше разделить модель и весь код, связанный с базой данных.
Например, в Zend Framework руководство по быстрому запуску советует иметь:
- ваша модель классов
- ваши картографы данных, чья роль состоит в том, чтобы "преобразовать" модель в модель базы данных.
- ваши DAO (или шлюз данных таблиц), которые осуществляют прямой доступ к таблицам
Это действительно интересная модель, вам стоит взглянуть на нее, она позволяет вам реально отделить модель от данных и, таким образом, выполнять тесты только для части модели (и не заботиться о проблемах с базой данных). / вопрос)
Но в вашем коде я предлагаю вам выполнить тест, в котором у вас есть функция dbq (), которая возвращает false (возможно, наличие связи db невозможно «нарочно»), чтобы иметь полный код покрытие.
У меня часто бывают такие ситуации, когда тестирование всех "случаев ошибок" отнимает у вас слишком много времени, поэтому я отказываюсь от 100% покрытия кода.