Я пытаюсь проверить apar Laravel. Когда я пытаюсь создать частичный макет с помощью метода заполнения Eloquent Model, phpunit выдает ошибку.Mockery не может создать частичный макет с использованием метода заполнения Eloquent Model
Код
$mock = m::mock('App\User', [])->makePartial();
$mock->shouldReceive('fill')->once()->andReturn('ok');
$result = $mock->fill([]);
var_dump($result);
Ошибка
PHP Fatal error: Call to a member function __call() on a non-object
PHP Fatal error: Uncaught exception 'Illuminate\Contracts\Container\BindingResolutionException' with message 'Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable.
Я действительно не знаю, если это либо Eloquent ошибка, или насмешки ошибка.
Примечания:
я временно решить эту проблему с помощью метода Model :: обновления вместо модели :: заполнить и затем Model :: сохранить, но я все еще хочу знать, как издеваться метод заливки.
Ссылки
http://laravel.com/api/5.0/Illuminate/Database/Eloquent/Model.html#method_fill
Точно, использование [methodName] означает, что только этот метод следует издеваться. –
Этот ответ почти полностью прав. Если я добавлю эту строку, она по-прежнему бросает ту же ошибку, но вы помогли найти настоящую проблему. Реальная проблема заключается в следующем: конструктор модели вызывает функцию заполнения, и это происходит до добавления ожидания. Итак, я смотрел, как это решить, и я обнаружил, что мне нужно создать частичный макет, но теперь он вызывает еще одну ошибку. –