関数をオーバーロードするモデルがありwhere
ます。
私のオーバーロードされたメソッドは次のようになります。
public function where($column, $operator = null, $value = null, $boolean = 'and')
{
if (in_array($column, $this->metaFields))
{
$value = '%"' . $column . '":"' . $value . '"';
$column = 'meta';
$operator = 'like';
}
return parent::where($column, $operator, $value, $boolean);
}
今、phpunit と嘲笑を使用して、このクラスをテストしようとしています。オーバーロードされた where 関数をテストする必要があります。本当に気にするのは、渡される値が何であるかだけです。parent::where()
私の質問は、それは可能ですか/どうすれば親クラスをモックできるのでしょうか
$metaField = 'colour';
$value = 'blue';
//on the parent
->shouldReceive('where')->with(['meta', 'like', '%"colour":"blue"%'])->once();
//on the model I am testing
$model->where('colour', 'blue');