Я работаю над проектом Symfony, и у меня есть некоторые проблемы при тестировании с phpunit.
У меня есть StatusFixtures с addReference
для использования в BriefFixtures, и это правильно работает, когда я делаю doctrine:fixtures:load
(с правильной зависимостью для загрузки Status перед Brief). Но когда я запускаю свои тесты, используя эти приборы, появляется следующая ошибка: Error: Call to a member function addReference() on null
My StatusFixtures.php
<?php
namespace App\DataFixtures;
use App\Entity\Status;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
class StatusFixtures extends Fixture
{
const Status_Reference = 'status';
public function load(ObjectManager $manager)
{
// some code to assign values
$manager->persist($activeStatus);
$this->addReference(self::Status_Reference, $activeStatus);
$manager->flush();
}
}
My BriefFixtures.php
<?php
namespace App\DataFixtures;
use App\Entity\Brief;
use Doctrine\Bundle\FixturesBundle\Fixture;
use Doctrine\Common\Persistence\ObjectManager;
use Doctrine\Common\DataFixtures\DependentFixtureInterface;
class BriefFixtures extends Fixture implements DependentFixtureInterface
{
public function load(ObjectManager $manager)
{
// some code to assign values
$briefValid->setStatus($this->getReference(StatusFixtures::Status_Reference));
$manager->persist($briefValid);
$manager->flush();
}
public function getDependencies()
{
return array(
StatusFixtures::class,
);
}
}
И я загружаю приборы таким образом в своих тестах
private $entityManager;
protected function setUp()
{
$kernel = self::bootKernel();
$this->entityManager = $kernel->getContainer()
->get('doctrine')
->getManager();
$status = new StatusFixtures();
$status->load($this->entityManager);
$fixture = new BriefFixtures();
$fixture->load($this->entityManager);
}
И моя ошибка Error: Call to a member function addReference() on null
$this
из StatusFixtures кажется нулевой, но я непонять, почему это правильно работает, когда я загружаю приборы, а не когда я запускаю свои тесты.
Может быть, что-то отсутствует в setUp ()?
Спасибо за помощь