めちゃくちゃ便利なMockery。テストを書く方なら多分結構使ったことがあるかなと思います。
今回はMockeryを使う際の注意点を紹介します。
Mockeryはprotectedなメソッドには使えない
意外な落とし穴としてはこれが上げられるかなと思います。
Mockeryはprotectedなメソッドには使えないのです。
ただ、どうしてもprotectedでメソッド宣言したい、でもテストするときに必要だしな ~ みたいなパターンあると思います。
めちゃくちゃ親切なことにそれ専用のメソッドが用意されています。
shouldAllowMockingProtectedMethodsを使おう
protected専用のメソッドです。
こいつを使ってあげれば一発で解消します。(公式)
$service = \Mockery::mock('Class')->shouldAllowMockingProtectedMethods();
上記の様に呼び出してあげればokです 