在我的 Symfony 应用程序中,我目前正在按照文档编写表单测试。在联系表单中,验证数据后,我会清空表单以供进一步使用。我想在我的测试中检查这种行为。
我有 4 个字段,其中包含我在这里没有表示的几个约束:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('name', TextType::class)
->add('subject', TextType::class)
->add('email', EmailType::class)
->add('message', TextareaType::class)
;
}
在我的测试中,我在扩展的类中使用以下函数WebTestCase
:
public function testContactForm(string $subject, string $name, string $email, string $message, int $nbErrors)
{
$form_name = 'contact';
//do some test, submit etc...
//check that the form is cleaned if valid
if (!$nbErrors) {
$this->assertInputValueSame($form_name . '[subject]', '');
$this->assertInputValueSame($form_name.'[name]', '');
$this->assertInputValueSame($form_name . '[email]', '');
$this->assertInputValueSame($form_name . '[message]', '');
}
}
当然$this->assertInputValueSame($form_name . '[message]', '');
不起作用,因为message
是textArea
. 我因此尝试:
$this->assertSelectorTextContains('#'.$name.'_message', '');
但得到以下错误
mb_strpos():空分隔符
那么在 Symfony 4 中测试 textArea 输入是否为空的好方法是什么?