Я пытаюсь выполнить модульное тестирование формы, которая имеет 2 зависимости (ObjectManager и EventDispatcher)
Я пытался следовать официальному документу но безуспешно.
Мой тестовый файл:
<?php
namespace Lch\MediaBundle\Tests\Form;
use Lch\MediaBundle\Form\AddImageType;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Doctrine\Common\Persistence\ObjectManager;
use Symfony\Component\Form\PreloadedExtension;
use Symfony\Component\Form\Test\TypeTestCase;
class AddImageTypeTest extends TypeTestCase
{
private $entityManager;
private $eventDispatcher;
protected function setUp()
{
$this->entityManager = $this->createMock(ObjectManager::class);
$this->eventDispatcher = $this->createMock(EventDispatcher::class);
parent::setUp();
}
protected function getExtensions()
{
$type = new AddImageType($this->entityManager, $this->eventDispatcher);
return array(
new PreloadedExtension(array($type), array()),
);
}
public function testSubmitValidData()
{
$form = $this->factory->create(AddImageType::class);
}
}
Я получил эту ошибку при выполнении своего набора тестов:
TypeError: аргумент 1, переданный в LCH \ MediaBundle \ Form \ AddImageType :: __ construct (), должен реализовывать интерфейс Doctrine \ Common \ Persistence \ ObjectManager, не указан, вызывается в / home / matthieu / www / lch / media / src / Lch / MediaBundle /vendor/symfony/symfony/src/Symfony/Component/Form/FormRegistry.php в строке 85
Кажется, что работа, которую я выполняю в методе getExtensions, не работает, но я не могу понять это.
У кого-нибудь есть ключ?