所以我有一个非常简单(至少现在是这样)的模型,它通过它的主键 ID 返回一个联系人:
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
功能(其中 DB 访问器实际上是域对象模型的一部分),我不确定我是否可以完全模拟数据库——或者我可能遗漏了一些东西。
所以问题是:您将如何编写测试Model_Contact::get_by_id()
?
提前致谢!