2

Doctrine 2モデルをユニットテストする方法は何ですか?ZendFramework1.11で使用しています。Zend_TestPHPUnitを使用するものがあります。正しい使い方はPHPUnit_Extensions_Database_TestCase。Zend Frameworkでは、を使用できますZend_Test_PHPUnit_DbZend_Dbクラスの代わりにDoctrineモデルをユニットテストするようにコードを変更するにはどうすればよいですか。

第一に、私はZend_Dbものを使う代わりに、Doctrineのものを使わなければならないと思います

class BugsTest extends Zend_Test_PHPUnit_DatabaseTestCase
{
    private $_connectionMock;

    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;
    }
    ...
}
4

2 に答える 2

3

正確に何をテストしたいですか?それ自体がモデルである場合、それはそれほど難しいことではありません。Doctrine 2モデルは、マッピング情報を含む注釈付きの単なるPHPオブジェクトです。これは、Doctrine 2が「永続性を知らない」ことの良い点です。通常のクラスと同じように、モデルをテストできます。

于 2010-12-20T15:29:16.127 に答える
2

DoctrineExtensionsを介してPHPUnitの拡張機能があることがわかりましたORMTestCase。使用法は次のようになります

namespace MyProject\Tests;

use DoctrineExtensions\PHPUnit\OrmTestCase

class EntityFunctionalTest extends OrmTestCase
{
    protected function createEntityManager()
    {
        return Doctrine\ORM\EntityManager::create(..);
    }

    protected function getDataSet()
    {
        return $this->createFlatXmlDataSet(__DIR__."/_files/entityFixture.xml");
    }
}
于 2010-12-25T08:15:26.173 に答える