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

解決しました。ZendFramework2チュートリアルで提供されているAlbumモジュールが変更されているのを偶然目にしました。変更されたコードを修正するために、もう一度それに従いました。これで、言及された問題は整理されました。

于 2012-10-26T12:13:17.580 に答える