2012-02-08 7 views
9

私は(phpunitを使って)いくつかのテストを作成したいSymfony2 + Doctrine2上に構築されたアプリケーションを持っています。phpunitを使ったテストのための一時的なDoctrine2フィクスチャ

たとえば、固有のバリデータをDBのレコードに対してテストしたい場合は、私が扱うことのできるレコードを作成したいが、テストの後でもう必要ない。一時的(または仮想)のフィクスチャを作成する方法はありますか、手動で作成して削除する必要がありますか?

答えて

20

あなたはDoctrine DataFixtureを使用し、ユニットテストクラスのあなたのセットアップ方法でこのコードを置くことができます。

$loader = new Doctrine\Common\DataFixtures\Loader; 
$loader->loadFromDirectory('/path/to/MyDataFixtures'); 
$purger = new Doctrine\Common\DataFixtures\Purger\ORMPurger($em); 
$executor = new Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger); 
$executor->execute($loader->getFixtures()); 

あなたはDataFixtureクラスを作成方法を確認するために、ドキュメントを参照することができます。ここで

がそれを行う方法の良い例です。Symfony 2 + Doctrine 2 + PHPUnit 3.5: Serialization of closure exception

PS:私はあなたがこの例では、作業の$ EM(EntityManagerを)持っていると仮定します。

+2

または $ loader = new \ symfony \ Bridge \ Doctrine \ DataFixtures \ ContainerAwareLoader(static :: $ kernel-> getContainer()); ContainerAwareInterfaceを実装するフィクスチャを使用する必要がある場合。 また、ありがとう!この答えを使っただけです。 – skqr

+0

PRMPurgerは本当に$ emを必要としますか? – Tjorriemorrie

+0

srcディレクトリからすべてのフィクスチャをロードする最も良い方法は何ですか? –

関連する問題