【发布时间】:2015-12-23 19:13:28
【问题描述】:
我正在尝试测试 Laravel api。 当我尝试使用 Eloquent 模型填充方法创建部分模拟时,phpunit 会抛出错误。
代码
$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 错误,还是 Mockery 错误。
注意事项:
我暂时使用Model::update方法解决了这个问题,而不是Model::fill然后Model::save,但我还是想知道如何模拟fill方法。
链接
http://laravel.com/api/5.0/Illuminate/Database/Eloquent/Model.html#method_fill
【问题讨论】:
标签: unit-testing laravel laravel-5 mockery