Я пытаюсь написать тест для модели, которая имеет как обычные валидаторы, так и настраиваемый валидатор, использующий диспетчер сущностей и запрос. Я использую phpunit для своих тестов, если это по какой-то причине имеет значение.
Я тестирую настраиваемый валидатор в другом тесте, заглушая и диспетчер сущностей, и запрос, а затем проверяя некоторые объекты. Поскольку это доказывает, что настраиваемая проверка работает, мне нужно было бы только протестировать обычную проверку, и если это возможно, просто оставьте настраиваемый валидатор.
Вот моя модель:
/**
* @MyAssert\Client()
*/
abstract class BaseRequestModel {
/**
* @Assert\NotBlank(message="2101")
*/
protected $clientId;
/**
* @Assert\NotBlank(message="2101")
*/
protected $apiKey;
// ...
}
В моем тесте я получаю валидатор, создаю объект и затем проверяю его.
$validator = ValidatorFactory::buildDefault()->getValidator();
$requestModel = new RequestModel();
$errors = $validator->validate($requestModel);
Конечно, это не удается, поскольку он не может найти валидатор, определенный для MyAssert \ Client, который является службой и должен быть разрешен каким-либо контейнером внедрения зависимостей.
Кто-нибудь знает, как заглушить настраиваемый валидатор или исключить его из проверки?