我正在寻找测试以下静态方法的最佳方法(特别是使用 Doctrine 模型):
class Model_User extends Doctrine_Record
{
public static function create($userData)
{
$newUser = new self();
$newUser->fromArray($userData);
$newUser->save();
}
}
理想情况下,我会使用模拟对象来确保fromArray
(使用提供的用户数据)和save
被调用,但这是不可能的,因为该方法是静态的。
有什么建议么?
PHPUnit 的作者 Sebastian Bergmann 最近发表了一篇关于存根和模拟静态方法。使用 PHPUnit 3.5 和 PHP 5.3 以及一致使用后期静态绑定,您可以做到
$class::staticExpects($this->any())
->method('helper')
->will($this->returnValue('bar'));
Update: staticExpects
is 自 PHPUnit 3.8 起已弃用并将在后续版本中完全删除。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)