我想測試一個使用實體管理器的自定義驗證器。單元測試 - 使用實體管理器的自定義類驗證
的驗證是形式工作正常,但我仍然有問題,測試它:它不會拋出違反。
我的驗證是類驗證但違反添加到場姓$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