我正在尝试测试使用实体管理器的自定义验证器。
验证器在表单中工作正常,但我仍然在测试它时遇到问题:它永远不会引发冲突。
我的验证器是类验证器,但向字段姓氏添加了违规$this->context->addViolationAt('lastname',$message,$param);
我的测试类中有代码:
public function testNoMoreThreeBatman() {
$validator = Validation::createValidatorBuilder()->getValidator();
//I have already checked I got my test database ok, full with what I want
//I create a new one with the name 'wayne' (so it'll be not valid)
$user = new User();
$user->setLastname('wayne');
$violationList = $validator->validate($user);
$this->assertEquals(1, $violationList->count());
}
我找到了很多主题,但没有人给我提示。我用另一个自定义验证进行了测试,一个简单的验证,我没有问题。我想知道问题是否可能来自它是一个类验证器的事实,或者它将违规添加到一个字段的事实
因为我的答案在评论中,所以我在这里发布回复以获得更多可见性:
正确的是 Validation::createValidatorBuilder()->getValidator();
代替 $validator = Validation::createValidatorBuilder()->getValidator();