単体テストに役立つトリックは、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";
その自分の。最初はリポジトリ内のすべてを持っていましたが、それは理にかなっていませんでしたが、Serviceに移動して、うまく動作していたすべての依存オブジェクトを嘲笑することで
見て、の...テスト完全なテストスイートがあります。 – mpm
これらは私のアプリケーションではなく、Doctrine向けのabstractTestSuitesを使用したDoctrine指向の単体テストです。私はバンドル内の自分のモデルを単体テストする簡単で適切な方法を探しています。 – vinnylinux