Iは、その最初のステップは、直ちにそのパラメータの一つクローンとしてこと、クラス、getPaginatedQuery
を有するクローンを方法Builder
オブジェクトのテストモックパラメータ
public function getPaginatedQuery(Builder $query, $limit = null, $offset = null)
{
$constrainedQuery = clone $query;
...
}
クローニングその__clone
マジック方法によって達成されます。
私は$query
のためにそれを嘲笑Builder
インスタンスを渡すことによって、この方法でユニットテストをしようとしています:
$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);
?