Unit Testing Lehre 2 Modelle
-
11-10-2019 - |
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;
}
...
}
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