验证单元测试表单中的日期时间字段失败


Failed validating datetime field in unit testing form

>我正在编写一个单元测试,但我无法通过日期时间字段的验证。这是我的实体,其中包含导致问题的字段:

class Page
{
    /**
     * @var 'DateTime
     * @Assert'NotBlank(message="NOT_EMPTY")
     * @ORM'Column(name="end_date", type="datetime", nullable=true)
     */
     private $date;
 }

这是我的单元测试:

$form = $crawler->filter('#addNew')->form();
$date = new 'DateTime();
$params = array(
    'formpage[title]' => 'Unitest sample',
    'formpage[date]'  => $date->format('Y-m-d H:i:s')
);
$form->setValues($params);
$client->submit($form);

这是我使用调试器捕获的错误,$form->isValid() 返回 false:

Symfony'Component'Validator'ConstraintViolation
This value is not valid
Unable to reverse value for property path "date": Date parsing failed: U_PARSE_ERROR

知道问题可能是什么吗?提前谢谢。

我认为由于预期的格式而失败。

您似乎已将小部件定义为single_text但尚未指定格式(或者您指定的格式与您发送的格式不一致)。如果小部件single_text,则默认格式为yyyy-MM-dd(没有 H:i:s 部分)。

更正此问题,它应该可以工作。