我有一个类,getPaginatedQuery
,即作为其第一个步骤,立即克隆它的一个参数的方法:测试该克隆一个嘲笑参数
public function getPaginatedQuery(Builder $query, $limit = null, $offset = null)
{
$constrainedQuery = clone $query;
...
}
的Builder
对象的克隆是通过其__clone
魔术方法来完成的。
我被传递一个嘲笑Builder
实例$query
试图单元测试这种方法:
$query = m::mock('Illuminate\Database\Eloquent\Builder');
$relation->getPaginatedQuery($query, 2, 1);
我测试的失败,一个致命的错误:__clone method called on non-object
。我已经尽我$query
对象定义__clone
的期望,但我得到了同样的错误:
$query = m::mock('Illuminate\Database\Eloquent\Builder');
$clonedQuery = m::mock('Illuminate\Database\Eloquent\Builder');
$query->shouldReceive('__clone')->andReturn($clonedQuery);
$relation->getPaginatedQuery($query, 2, 1);
我在做什么错在这里?