phpUnit を使用して Zend Framework でいくつかの基本的なデータベース テストを実行した後、次のエラーが発生しました。
PHP Fatal error: Class Zend_Test_PHPUnit_Db_Metadata_Generic contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (PHPUnit_Extensions_Database_DB_IMetaData::disablePrimaryKeys, PHPUnit_Extensions_Database_DB_IMetaData::enablePrimaryKeys) in D:\www\~library\zend_latest\library\Zend\Test\PHPUnit\Db\Metadata\Generic.php on line 167
私のテストは、ZF ドキュメントのテストと非常によく似ています。
class BugsTest extends Zend_Test_PHPUnit_DatabaseTestCase
{
private $_connectionMock;
/**
* Returns the test database connection.
*
* @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
*/
protected function getConnection()
{
if($this->_connectionMock == null) {
$connection = Zend_Db::factory(...);
$this->_connectionMock = $this->createZendDbConnection(
$connection, 'zfunittests'
);
Zend_Db_Table_Abstract::setDefaultAdapter($connection);
}
return $this->_connectionMock;
}
/**
* @return PHPUnit_Extensions_Database_DataSet_IDataSet
*/
protected function getDataSet()
{
return $this->createFlatXmlDataSet(
dirname(__FILE__) . '/_files/bugsSeed.xml'
);
}
}
問題に対する私の「修正」は、ライブラリに実装PHPUnit_Extensions_Database_DB_IMetaData
しないことでしたZend_Test_PHPUnit_Db_Metadata_Generic
。これですべて正常に動作しますが、この問題を解決する適切な方法があるかどうか疑問に思います。
ZF 11.11、phpUnit 3.6.10、および DbUnit 1.1.2 を使用しています。