我跟随this tutorial在ZF2上进行单元测试。我熟悉单元测试,所以我非常了解发生了什么。
我得到AppSettings
。
如果我正确关注,控制器会在我的模拟对象上调用PHP Fatal error: Call to undefined method Mock_AlbumTable_9fb22412::fetchAll() in [my controller's route here]
。奇怪的部分是为什么它是未定义的,如果我在模拟期望中声明它。
我的测试代码在提供的链接上完全相同(字面上复制/粘贴),我的fetchAll
类也来自教程:
AlbumTable
我在这里缺少什么?
编辑:从网络浏览器访问所述控制器的路由是有效的,所以它至少不是<?php
namespace Album\Model;
use Zend\Db\TableGateway\TableGateway;
class AlbumTable
{
protected $tableGateway;
public function __construct(TableGateway $tableGateway)
{
$this->tableGateway = $tableGateway;
}
public function fetchAll()
{
$resultSet = $this->tableGateway->select();
return $resultSet;
}
// ... more code ...
}
类的问题。< / p>
答案 0 :(得分:0)
你错过了这一行:
$albumTableMock=$this->getMockBuilder('Album\Model\AlbumTable')
->disableOriginalConstructor()
->setMethods(array('fetchAll')) // <- you miss this line
->getMock();