Я пытаюсь издеваться над ответом, который я получаю от объекта Validator
, используя Mockery
, в конечном итоге я пытаюсь заставить пройти или не пройти проверку, чтобы я мог проверить, что происходит после проверки. Я пробовал следующее без радости.
$validator = Validator::shouldReceive('make')
->once()
->with([], $this->rules);
$validator->shouldReceive('fails')
->once()
->andReturn(true);
И
$validator = Validator::shouldReceive('make')
->once()
->with([], $this->rules)
->shouldReceive('fails')
->once()
->andReturn(true);
С обоими из них я затем устанавливаю свойство валидатора в классе для объекта, возвращающегося из насмешек.
Функция, которую я пытаюсь проверить, выглядит так
class JsonModel extends Model
{
private $validator;
public function createFromJSON(array $inputData, $throwException = false)
{
// This calls Validator::make
$this->makeValidator(
$inputData,
$this->getValidationRules() // An internal function that returns the rules for the Model
);
if($this->validator->fails()) {
if($throwException === true) {
throw new Exception('Validation failed');
} else {
return null;
}
}
return null;
/** @var Model $model */
$model = self::create($inputData);
return $model;
}
private function makeValidator($inputData, $ruleData)
{
$this->validator = Validator::make($inputData, $ruleData);
}
}
Я открыт для предложений для других подходов, не обязательно, чтобы я это исправил, потому что я могу просто пойти по пути возврата null, удалить исключение и предположить, что Validator выполнит свою работу, но это меня беспокоит.
makeValidator
, пожалуйста? Вы теряете меня с обоими из них, затем я устанавливаю свойство валидатора в классе для объекта, возвращающегося из насмешек. - person deefour   schedule 24.07.2015