Frage

Was ist der Weg, um Unit-Test-Lehre 2-Modelle? Ich benutze es mit Zend Framework 1.11. Es hat Zend_Test die PHPUnit verwendet. Ich denke, das Richtige zu verwenden ist PHPUnit_Extensions_Database_TestCase . Im Zend Framework kann ich Zend_Test_PHPUnit_Db . Wie kann ich den Code Unit-Test-Lehre Modelle statt Zend_Db Klassen ändern.

1., denke ich, statt Zend_Db Sachen zu verwenden, ich habe stattdessen Lehre Zeug verwenden

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;
    }
    ...
}
War es hilfreich?

Lösung 2

Ich fand DoctrineExtensions , die Erweiterungen für PHPUnit über ORMTestCase hat. Usage sieht so etwas wie

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

Andere Tipps

Was genau wollen Sie testen? Wenn es nur das Modell per se - das ist nicht allzu schwierig. Lehre 2 Modelle sind einfach nur PHP mit Anmerkungen Objekte, die die Zuordnungsinformationen enthalten. Das ist das Gute an Doctrine 2 Wesen „persinstance ignorant“. Sie die Modelle wie jede reguläre Klasse testen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top