我想测试一个使用实体管理器的自定义验证器。单元测试 - 使用实体管理器的自定义类验证
的验证是形式工作正常,但我仍然有问题,测试它:它不会抛出违反。
我的验证是类验证但违反添加到场姓$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();
嗯。你的验证器甚至被称为?我怀疑不是。我假设你将用户映射到validation.yml中的验证器?如果是这样,那么你需要更多的东西来将验证器绑定到配置文件。 – Cerad
如何查看我的验证程序是否被调用?是的,我的验证器映射在我的validation.yml中,并且在我的表单中使用它时工作正常 – goto