こんなときに使う
モックしたけど、元の関数の動きをそのまま使いたい。
例えば、回数だけをチェックするとか、特定の引数のときだけ動作を変えたいとか。
passthru関数
$mock->shouldRecieve('func')->once()->passthru();
これで、元のfuncがそのまま動きますが、一度だけ呼び出すということがテスト出来ます。
引数に応じてテストを変える
// 引数1の場合は、元の関数をそのまま動かしたのと一緒 $mock->shouldReceive(xxx) ->with(1) ->passthru(); $mock->shouldReceive(xxx) ->with(2) ->andReturn(2);
これで、1のときは、普通、2のときは2を返すというコードが書けます。