同事希望在测试中模拟实体管理器。他有以下代码:
...
$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,给出字符串
如何为该类挖掘元数据?
答案 0 :(得分:0)
您可以通过以下方式进行操作:
$em = $this->getDoctrine()->getManager();
$metadata = $em->getClassMetadata(NewslettersStatisticSnapshot::class);
答案 1 :(得分:0)
我们最终只是在模拟存储库。