0

我正在按照在线 ZF2 教程尝试 Zf2 专辑模块中的 phpunit。下面是调试信息。

Album\Model\AlbumTableTest::testFetchAllReturnsAllAlbums
Argument 1 passed to Album\Model\AlbumTable::__construct() must be an instance of Zend\Db\Adapter\Adapter, instance of Mock_TableGateway_fb3537df given, called in D:\www\zend2\tests\module\Album\src\Album\Model\AlbumTableTest.php on line 26 and defined

使用的功能是

public function testFetchAllReturnsAllAlbums()
{
    $resultSet        = new ResultSet();
    $mockTableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway',
                                       array('select'), array(), '', false);
    $mockTableGateway->expects($this->once())
                     ->method('select')
                     ->with()
                     ->will($this->returnValue($resultSet));

    $albumTable = new AlbumTable($mockTableGateway);

    $this->assertSame($resultSet, $albumTable->fetchAll());
}

而调试信息中提到的第26行是

$albumTable = new AlbumTable($mockTableGateway);

在 Album\Model\AlbumTable::__construct() 中调用以下函数

public function __construct(Adapter $adapter)
    {
        $this->adapter = $adapter;
        $this->resultSetPrototype = new ResultSet();
        $this->resultSetPrototype->setArrayObjectPrototype(new Album());
        $this->initialize();
    }

非常感谢任何帮助克服这个失败的测试。

4

1 回答 1

0

解决了。我碰巧看到 Zend Framework2 教程中给出的 Album 模块已经更改。我再次按照它来更正更改的代码。现在上述问题已经解决。

于 2012-10-26T12:13:17.580 回答