2010-12-17 129 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对象,其注释包含映射信息。这就是第二条教义“无知无知”的好处:你可以像任何普通班级一样测试模型。