4

symfony2 プロジェクトの単体テストを書いています。たとえば、Doctrine\ORM\EntityManger inctance を必要とするいくつかのクラスをテストしたい:

// Class for testing
// ...
class CategoryManager
{
   public function __construct( EntityManager $em )
   {
       // ...

したがって、単体テストで Doctrine\ORM\EntityManager インスタンスを作成し、次のようにコンストラクターに渡す必要があります。

// Testing
// ...
$category1 = new Category();
$category2 = new Category();
$categories = array( $category1, $category2 );
$query = $this->getMock( '\Application\BackendBundle\Tests\Mocks\Doctrine\ORM\Query', array(), array(), '', false );
$query->expects( $this->any() )
      ->method( 'getResult' )
      ->will( $this->returnValue( $categories ) );
$em = $this->getMock( 'Doctrine\ORM\EntityManger', array(), array(), '', false );
$em->expects( $this->any() )
   ->method( 'createQuery' )
   ->will( $this->returnValue( $query ) );
// ...

entity_manager モック作成を改善および自動化する方法を教えてください。これがモックを作成する正しい方法かどうかはわかりません (このかさばるモックの作成は私には不便に思えます)。アドバイスをいただければ幸いです。

4

1 に答える 1