如何获取测试的 Doctrine 类元数据?

Pat*_*ick 1 php phpunit doctrine metadata symfony

一位同事想要在测试中模拟实体经理。他有这样的代码:

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

    $em->method('getRepository')->willReturn($myRepository);
    ...
Run Code Online (Sandbox Code Playgroud)

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

TypeError:传递给 Doctrine\ORM\EntityRepository::__construct() 的参数 2 必须是 Doctrine\ORM\Mapping\ClassMetadata 的实例,给定字符串

我如何挖掘该类的元数据?

Mit*_*ava 7

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

 $em       = $this->getDoctrine()->getManager();
 $metadata = $em->getClassMetadata(NewslettersStatisticSnapshot::class);
Run Code Online (Sandbox Code Playgroud)