質問

Doctrine 2モデルのユニットテストの方法は何ですか? Zend Framework 1.11で使用しています。持っています Zend_Test phpunitを使用します。使用するのは正しいことだと思います PHPUnit_Extensions_Database_TestCase. 。 Zend Frameworkでは、使用できます Zend_Test_PHPUnit_Db. 。コードを単位テストの教義モデルの代わりに変更するにはどうすればよいですか Zend_Db クラス。

1つ目は、使用する代わりに Zend_Db もの、私は代わりに教義のものを使わなければなりません

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;
    }
    ...
}
役に立ちましたか?

解決 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");
    }
}

他のヒント

何をテストしたいですか?それ自体がモデルだけなら、それはそれほど難しくありません。 Doctrine 2モデルは、マッピング情報を含む注釈を備えた単なるPHPオブジェクトです。 Doctrine 2が「無知」であることについての良いところは、通常のクラスと同じようにモデルをテストできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top