2010-12-17 17 views
2

Doctrine 2モデルの単体テスト方法は? Zend Framework 1.11で使用しています。 PHPUnitを使用するZend_Testがあります。私は使用するべき正しいものがPHPUnit_Extensions_Database_TestCaseだと思う。 Zend Frameworkでは、Zend_Test_PHPUnit_Dbを使用できます。 Zend_Dbクラスではなく、単体テストDoctrineモデルのコードを変更するにはどうすればよいですか。単位テストDoctrine 2モデル

第一は、私が代わりに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; 
    } 
    ... 
} 

答えて

2

ORMTestCaseによってPHPUnitの拡張機能を持つDoctrineExtensionsが見つかりました。使用状況は次のようになります

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

何を正確にテストしたいですか?その単なるモデルそのものなら、それほど難しいことではありません。 Doctrine 2モデルは、マッピング情報を含むアノテーションを持つ単なるPHPオブジェクトです。 Doctrine 2についての良いことは、「無知」という意味です。普通のクラスと同じようにモデルをテストできます。

関連する問題