ユニットテストに役立つと私が見つけたトリックは、sqliteのファイルベースのデータベースを使用することです。'emptydatabase.dat'というファイルに空のデータベーステーブルを作成し、sqliteを使用してロードできます。これで、テストの最後に、空のデータベースファイルを上書きして、新しいデータベースから開始できます。
次のコードを使用して、空のスキーマファイルを作成できます。
$classes = array(
$em->getClassMetadata('MyAPIBundle:Currency'),
$em->getClassMetadata('MyAPIBundle:Permission'),
$em->getClassMetadata('MyAPIBundle:Role'),
$em->getClassMetadata('MyAPIBundle:User'),
);
$tool = new \Doctrine\ORM\Tools\SchemaTool($em);
$tool->createSchema($classes);
rename($schemafile, dirname(__FILE__) . '/../Data/schema.dat');
print "Schema file was regenerated\n";
また
また、運用が必要なすべての主要なエンティティ向けのサービスを作成し、それ自体でスタンドアロンサービスを簡単にテストしました。最初はすべてがリポジトリにありましたが、それは意味がありませんでしたが、それらをサービスに移動し、すべての依存オブジェクトをモックアウトすることで、うまくいきました