【发布时间】:2012-02-16 21:14:36
【问题描述】:
我有这样的课程:
class Foo {
function getCurrentBar() {
$model = Query::findByPk($this->getSession()->get('current_bar')); // Pseudocode...
return $model;
}
}
所以基本上我的应用程序中一次只有一个条形,它以整数形式存储在会话中。我经常调用一个帮助函数来查找模型实例,它会进行数据库查询。还有缓存,但现在没关系了。
我的问题是:我如何用这个进行单元测试?我测试的有些类需要这个。我想我可以更改会话以包含 id,但这意味着我需要在数据库中有相应的模型。
最好的方法是添加一个方法setCurrentBar() 仅用于单元测试目的吗?然后我可以模拟一个 bar 对象并设置它,它将用于所有单元测试。这有意义吗?
【问题讨论】:
标签: php unit-testing dependency-injection