1
ユニットがdateTypeフィールドを持つフォームをテストするとき、フォームテストは常にそのフィールドに対してnullを返します。ユニットテストSymfonyフォームの日付タイプ
public function testSubmitValidSearchFormData()
{
// Arrange
$date = new \DateTime('tomorrow');
$formData = array(
'date' => $date,
// some other fields
);
$object = new SearchModel();
$object
->setDate($formData['date'])
// set some more fields
// Act
$form = $this->factory->create(SearchType::class);
$form->submit($formData);
// Assert
$this->assertTrue($form->isSynchronized());
$this->assertEquals($object, $form->getData()); // fails, because of field 'date'
// some more tests...
}
SearchType.php:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
// other fields
// ...
->add('date', DateType::class)
->add('save', SubmitType::class, [
'label' => 'Finden',
'attr' => ['formnovalidate' => true]
]);
return $builder;
}
すべてのアイデア、なぜこれがそうですか?私のTestClassには他のメソッドは含まれていません。その他のフィールドはすべて正しく動作します。