首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony5 Doctrine在集成测试中抛出空异常

Symfony5 Doctrine在集成测试中抛出空异常
EN

Stack Overflow用户
提问于 2022-02-28 22:23:38
回答 1查看 82关注 0票数 0

我尝试使用ORMPurger与Symfony5和ph8.1进行简单的集成测试,但是在调用清除函数时会出现一个空引用错误。

有谁知道怎么解决这个问题吗?还是我忘了什么?

代码语言:javascript
复制
use App\Service\MyService;
use App\Entity\MyEntity;
use Doctrine\Common\DataFixtures\Purger\ORMPurger;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;

class MyIntegrationTest extends KernelTestCase 
{
    public function setUp(): void
    {
        self::bootKernel();
        
        $purger = new ORMPurger();
        $purger->purge();
    }

    public function testSavingWithService(): void
    {
        $container = self::getContainer();

        /** @var MyService */
        $service = $container->get(MyService::class);

        $entity = (new MyEntity())
          ->setName('testing something');

        $success = $sevice->saveEntityToDatabase($entity);

        $this->assertTrue($success, 'should return true if entity is saved successfully');
    }
}

错误:调用null上的成员函数getMetadataFactory()

服务本身工作正常,我只想在每次测试运行之前清除测试数据库。

在symfony强制转换中找到了教程,但这是旧的,基于symfony3.3和symfony4,symfony5可能有一些需要更改的地方

EN

回答 1

Stack Overflow用户

发布于 2022-02-28 22:42:58

我发现了错误,忘了在创建EntityManagerInterface时给出一个ORMPurger

代码语言:javascript
复制
public function setUp(): void
{
  self::bootKernel();
  
  /** @var EntityManagerInterface $manager*/
  $manager = self::getContainer()->get('doctrine')->getManager();
  $purger = new ORMPurger($manager);
  $purger->purge();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71301697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档