无法验证单元测试表单中的日期时间字段
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() returns false:
Symfony\Component\Validator\ConstraintViolation
This value is not valid
Unable to reverse value for property path "date": Date parsing failed: U_PARSE_ERROR
知道问题出在哪里吗?提前致谢。
我认为它失败是因为预期的 format。
您似乎已将小部件定义为 single_text 但未指定格式(或者您指定的格式与您发送的格式不一致)。如果小部件是 single_text(没有 H:i:s 部分),则默认格式是 yyyy-MM-dd
。
更正此问题,它应该会起作用。
我正在编写单元测试,但无法通过日期时间字段的验证。这是导致问题的字段的我的实体:
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() returns false:
Symfony\Component\Validator\ConstraintViolation This value is not valid Unable to reverse value for property path "date": Date parsing failed: U_PARSE_ERROR
知道问题出在哪里吗?提前致谢。
我认为它失败是因为预期的 format。
您似乎已将小部件定义为 single_text 但未指定格式(或者您指定的格式与您发送的格式不一致)。如果小部件是 single_text(没有 H:i:s 部分),则默认格式是 yyyy-MM-dd
。
更正此问题,它应该会起作用。