我尝试使用ORMPurger与Symfony5和ph8.1进行简单的集成测试,但是在调用清除函数时会出现一个空引用错误。
有谁知道怎么解决这个问题吗?还是我忘了什么?
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可能有一些需要更改的地方
发布于 2022-02-28 22:42:58
我发现了错误,忘了在创建EntityManagerInterface时给出一个ORMPurger
public function setUp(): void
{
self::bootKernel();
/** @var EntityManagerInterface $manager*/
$manager = self::getContainer()->get('doctrine')->getManager();
$purger = new ORMPurger($manager);
$purger->purge();
}https://stackoverflow.com/questions/71301697
复制相似问题