我有这样的功能:
<?php
function deleteFromDb(array $where)
{
$sql = new Sql($this->dbAdapter);
$delete = $sql->delete();
$delete->where($where);
$statement = $sql->prepareStatementForSqlObject($delete);
return $statement->execute();
}
如何在zend框架2中模拟此函数进行单元测试?
答案 0 :(得分:0)
就像没有Zend Framework一样 - 通过自己编写模拟,或通过模拟框架(如Mockery)动态生成它。
但我不明白为什么你需要嘲笑这段代码。没有if-else运算符,没有循环,没有异常抛出 - 这是非常简单的方法,因此您可以100%确保在任何可能的情况下以相同的方式和相同的计数来调用所有方法。所以嘲笑这个功能没有任何好处。
虽然必须对单元测试此函数进行存根,但此函数的替代实现将随时返回常量结果。在进行集成测试时,您不需要以任何方式模拟/存储此函数 - 只需检查实际结果值。