ドクトリン2モデルの単体テスト
-
11-10-2019 - |
質問
Doctrine 2モデルのユニットテストの方法は何ですか? Zend Framework 1.11で使用しています。持っています Zend_Test
phpunitを使用します。使用するのは正しいことだと思います PHPUnit_Extensions_Database_TestCase
. 。 Zend Frameworkでは、使用できます Zend_Test_PHPUnit_Db
. 。コードを単位テストの教義モデルの代わりに変更するにはどうすればよいですか Zend_Db
クラス。
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");
}
}
他のヒント
何をテストしたいですか?それ自体がモデルだけなら、それはそれほど難しくありません。 Doctrine 2モデルは、マッピング情報を含む注釈を備えた単なるPHPオブジェクトです。 Doctrine 2が「無知」であることについての良いところは、通常のクラスと同じようにモデルをテストできます。
所属していません StackOverflow