2010-12-17 63 views
2

單元測試原理2模型的方式是什麼?我將它與Zend Framework 1.11一起使用。它有Zend_Test它使用PHPUnit。我認爲正確的使用是PHPUnit_Extensions_Database_TestCase。在Zend Framework中,我可以使用Zend_Test_PHPUnit_Db。我如何修改代碼來單元測試Doctrine模型而不是Zend_Db類。單元測試原理2模型

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

你到底想測試?如果它只是模型本身 - 那不是太難。 Doctrine 2模型只是普通的PHP對象,其註釋包含映射信息。這就是第二條教義「無知無知」的好處:你可以像任何普通班級一樣測試模型。