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