形式测试返回错误symfony3 + PHPUnit的形式测试问题
测试\的appbundle \表格\型号\ UserPreferencesTypeTest :: testUserPreferencesForm 的Symfony \分量\ OptionsResolver \异常\ UndefinedOptionsException:选项 “约束” 不存在。定义的选项是:“action”,“attr”,“auto_initialize”,“block_name”,“by_reference”,“choice_attr”,“choice_label”,“choice_loader”,“choice_name”,“choice_translation_domain”,“choice_value” “,”choices_as_values“,”compound“,”data“,”data_class“,”disabled“,”empty_data“,”error_bubbling“,”expanded“,”group_by“,”inherit_data“,”label“,”label_attr“, label_format,mapped,method,multiple,placeholder,post_max_size_message,preferred_choices,property_path,required,translation_domain,trim,upload_max_size_message
这里是我的形式
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('global_review_count_threshold', ChoiceType::class, array(
'choices' => array(
'5%' => 5,
'10%' => 10,
'15%' => 15,
'20%' => 20,
'25%' => 25,
'30%' => 30,
'35%' => 35,
'40%' => 40,
'45%' => 45,
'50%' => 50,
), 'constraints' => array(new NotBlank(),), 'label' => "Global Review Count Threshold",
'data' => $options['review_count_choice']
));
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'review_count_choice' => null,
));
}
public function getName()
{
return 'app_bundle_user_preferences_form';
}
和我的形式测试
public function testUserPreferencesForm()
{
$formData = array(
'global_review_count_threshold' => '10%',
);
$form = $this->factory->create(UserPreferencesType::class);
//$object = TestObject::fromArray($formData);
$form->submit($formData);
$this->assertTrue($form->isSynchronized());
//$this->assertEquals($object, $form->getData());
$view = $form->createView();
$children = $view->children;
foreach (array_keys($formData) as $key) {
$this->assertArrayHasKey($key, $children);
}
}
FYI当然,我们可以离开执行$ FORMDATA阵列,但在我的情况下,这个数组是其他断言的必要条件 – Leszek