Итак, у меня есть очень простая (по крайней мере, сейчас) модель, которая возвращает контакт через идентификатор первичного ключа:
class Model_Contact extends \Fuel\Core\Model
{
public function get_by_id($contact_id)
{
return Entity_Contact::find_by_pk($contact_id);
}
}
Класс Entity_Contact
выглядит следующим образом (нерелевантное содержимое массива опущено):
class Entity_Contact extends \Core\Entity_Base
{
protected static $_table_name = 'contacts';
protected static $_properties = array(...);
protected static $_public_settable_properties = array(...);
protected static $_rules = array(...);
}
Примечание: \Core\Entity_Base
расширяет \Fuel\Core\Model_Crud
Я мог бы использовать это в контроллере так:
$model = new Model_Contact();
$contact = $model->get_by_id(4);
Я знаю, что для модульного тестирования я должен смоделировать фактический вызов базы данных (Entity_Contact::find_by_pk
), но я не уверен, как это сделать. Поскольку я использую функциональность Fuel Model_crud
(где средства доступа к БД на самом деле являются частью объектной модели предметной области), я не уверен, что смогу полностью имитировать базу данных — или, может быть, я что-то упускаю.
Итак, вопрос: как бы вы написали тест для Model_Contact::get_by_id()
?
Заранее спасибо!