Symfony2使用实体尝试测试它的自定义表单类型

aus*_*der 6 forms entity unit-testing symfony custom-type

我正在尝试测试我创建的表单类型,它使用带有类实体的字段

这是表单的创建

$builder
            ->add('name', 'text')
            ->add('description', 'textarea')
            ->add('services', 'entity', array('class' => 'MyBundle:Service', 'group_by' => 'category.name', 'property' => 'name', 'multiple' => true, 'required' => false));
Run Code Online (Sandbox Code Playgroud)

当我构建表单时,这非常好用,但后来我试图对这种类型进行单元测试

按照此示例介绍如何测试自定义表单类型

我收到了这个错误

Symfony\Component\Form\Exception\Exception:无法加载类型"entity"

在此命令的单元测试开始时引发错误:

    $type = new MyType();
    $form = $this->factory->create($type);
Run Code Online (Sandbox Code Playgroud)

有关如何修复此错误以便使用实体测试我的自定义表单类型的任何想法?

提前致谢

Emi*_*aos 3

我想您无法使用实体类型对表单进行单元测试,因为它被定义为服务。您尝试过手动添加吗?

编辑:恕我直言,您应该模拟实体类型,因为它涉及原则,这取决于现有的数据库连接等加载的完整内核。所以你不再进行单元测试了。这将是一个功能测试。也许这就是它在单元测试中不可用的原因。