如何获得Doctrine类的元数据进行测试?

时间:2019-05-06 08:23:44

标签: php symfony doctrine phpunit metadata

同事希望在测试中模拟实体管理器。他有以下代码:

    ...
    $em = $this->createMock(EntityManager::class);
    $myRepository = new NewslettersStatisticSnapshotRepository(
        $em,
        NewslettersStatisticSnapshot::class
    );

    $em->method('getRepository')->willReturn($myRepository);
    ...

...当我运行他的测试时,我得到了:

  

TypeError:参数2传递给   Doctrine \ ORM \ EntityRepository :: __ construct()必须是   主义\ ORM \ Mapping \ ClassMetadata,给出字符串

如何为该类挖掘元数据?

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式进行操作:

 $em                 = $this->getDoctrine()->getManager();
 $metadata           = $em->getClassMetadata(NewslettersStatisticSnapshot::class);

答案 1 :(得分:0)

我们最终只是在模拟存储库。