2

单元测试 Doctrine 2 模型的方法是什么?我将它与 Zend Framework 1.11 一起使用。它Zend_Test使用 PHPUnit。我认为正确使用的是PHPUnit_Extensions_Database_TestCase. 在 Zend Framework 中,我可以使用Zend_Test_PHPUnit_Db. 如何修改代码以对 Doctrine 模型而不是Zend_Db类进行单元测试。

第一,我认为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它通过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 回答