還暦過ぎたエンジニアの挑戦

いくつになっても好奇心だけは忘れないエンジニア Hikaruのブログ

MENU

publicではないメソッドをテストする

f:id:hikaru217:20200515140036p:plain
privateやprotectedのメソッドだってテストコードを書いておきたいときはある。
でも、あまり頻繁には使わない。
いつもどうだっけ? ってなる

$reflectionMethod = new \ReflectionMethod(クラスのインスタンス, テストするメソッド名);
$reflectionMethod->setAccessible(true);
$result = $reflectionMethod->invoke(クラスのインスタンス[, テストするメソッドの引数]);

結局

  1. reflectionMethodのインスタンスを作って
  2. アクセス可能にして、
  3. invokeする3ステップで