Unit testing Symfony 3.3项目中的测试表格(表格类型)
在Symfony 3.3项目中,我尝试测试以下简单表单:Unit testing Symfony 3.3项目中的测试表格(表格类型),unit-testing,symfony,Unit Testing,Symfony,在Symfony 3.3项目中,我尝试测试以下简单表单: class FooFormType extends AbstractType { private $fooService; public function __construct(FooService $fooService) { $this->fooService = $fooService; } public function buildForm(FormBuilder
class FooFormType extends AbstractType
{
private $fooService;
public function __construct(FooService $fooService)
{
$this->fooService = $fooService;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add(
'bar',
EntityType::class,
[
'class' => Bar::class,
'choice_label' => 'title',
'placeholder' => 'Please select a bar',
]
)
->add(
'baz',
ChoiceType::class,
[
'choices' => $this->fooService->lorem(),
]
)
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(
[
'data_class' => Foo::class,
]
);
}
}
我按照在上找到的说明编写了此(简化)测试:
不幸的是,引发了此异常:
Symfony\Component\Form\Exception\RuntimeException:Class“AppBundle\Entity\Bar”似乎不是托管条令实体。你忘了画地图了吗
这里有什么问题
class FooFormTypeTest extends TypeTestCase
{
protected function getExtensions()
{
$fooServiceDummy = $this->createMock(FooService::class);
$fooFormType = new FooFormType($fooServiceDummy);
$managerRegistryDummy = $this->createMock(ManagerRegistry::class);
$entityFormType = new EntityType($managerRegistryDummy);
return [
new PreloadedExtension([$fooFormType, $entityFormType], []),
];
}
/**
* @test
*/
public function submitValidData()
{
$form = $this->factory->create(FooFormType::class);
}
}